

<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
  <meta charset="utf-8" />
  
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  
  <title>Input device interface &mdash; LVGL  documentation</title>
  

  
  <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
  <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
  <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
  <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
  <link rel="stylesheet" href="../_static/css/custom.css" type="text/css" />
  <link rel="stylesheet" href="../_static/css/fontawesome.min.css" type="text/css" />

  
  
    <link rel="shortcut icon" href="../_static/favicon.png"/>
  

  
  

  
    <link rel="canonical" href="https://docs.lvgl.io/v8.0/en/html/porting/indev.html" />

  
  <!--[if lt IE 9]>
    <script src="../_static/js/html5shiv.min.js"></script>
  <![endif]-->
  
    
      <script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
        <script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script>
        <script src="../_static/jquery.js"></script>
        <script src="../_static/underscore.js"></script>
        <script src="../_static/doctools.js"></script>
    
    <script type="text/javascript" src="../_static/js/theme.js"></script>

    
    <link rel="index" title="Index" href="../genindex.html" />
    <link rel="search" title="Search" href="../search.html" />
    <link rel="next" title="Tick interface" href="tick.html" />
    <link rel="prev" title="Display interface" href="display.html" />
 
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-78811084-3"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

	gtag('config', 'UA-78811084-3', { 'anonymize_ip': true });
</script>

</head>

<body class="wy-body-for-nav">

   
  <div class="wy-grid-for-nav">
    
    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
      <div class="wy-side-scroll">
        <div class="wy-side-nav-search" >
          

          
            <a href="../index.html">
          

          
            
            <img src="../_static/logo_lvgl.png" class="logo" alt="Logo"/>
          
          </a>

          
            
            
              <div class="version">
                8.0
              </div>
            
          

          
<div role="search">
  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
    <input type="text" name="q" placeholder="Search docs" />
    <input type="hidden" name="check_keywords" value="yes" />
    <input type="hidden" name="area" value="default" />
  </form>
</div>

          
        </div>

        
        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
          
            
            
              
            
            
              <ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../intro/index.html">Introduction</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../intro/index.html#key-features">Key features</a></li>
<li class="toctree-l2"><a class="reference internal" href="../intro/index.html#requirements">Requirements</a></li>
<li class="toctree-l2"><a class="reference internal" href="../intro/index.html#license">License</a></li>
<li class="toctree-l2"><a class="reference internal" href="../intro/index.html#repository-layout">Repository layout</a></li>
<li class="toctree-l2"><a class="reference internal" href="../intro/index.html#release-policy">Release policy</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../intro/index.html#release-cycle">Release cycle</a></li>
<li class="toctree-l3"><a class="reference internal" href="../intro/index.html#branches">Branches</a></li>
<li class="toctree-l3"><a class="reference internal" href="../intro/index.html#changelog">Changelog</a></li>
<li class="toctree-l3"><a class="reference internal" href="../intro/index.html#version-support">Version support</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../intro/index.html#faq">FAQ</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../intro/index.html#where-can-i-ask-questions">Where can I ask questions?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../intro/index.html#is-my-mcu-hardware-supported">Is my MCU/hardware supported?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../intro/index.html#is-my-display-supported">Is my display supported?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../intro/index.html#nothing-happens-my-display-driver-is-not-called-what-have-i-missed">Nothing happens, my display driver is not called. What have I missed?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../intro/index.html#why-is-the-display-driver-called-only-once-only-the-upper-part-of-the-display-is-refreshed">Why is the display driver called only once? Only the upper part of the display is refreshed.</a></li>
<li class="toctree-l3"><a class="reference internal" href="../intro/index.html#why-do-i-see-only-garbage-on-the-screen">Why do I see only garbage on the screen?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../intro/index.html#why-i-see-nonsense-colors-on-the-screen">Why I see nonsense colors on the screen?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../intro/index.html#how-to-speed-up-my-ui">How to speed up my UI?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../intro/index.html#how-to-reduce-flash-rom-usage">How to reduce flash/ROM usage?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../intro/index.html#how-to-reduce-the-ram-usage">How to reduce the RAM usage</a></li>
<li class="toctree-l3"><a class="reference internal" href="../intro/index.html#how-to-work-with-an-operating-system">How to work with an operating system?</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../get-started/index.html">Get started</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../get-started/quick-overview.html">Quick overview</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../get-started/quick-overview.html#get-started-in-a-simulator">Get started in a simulator</a></li>
<li class="toctree-l3"><a class="reference internal" href="../get-started/quick-overview.html#add-lvgl-into-your-project">Add LVGL into your project</a></li>
<li class="toctree-l3"><a class="reference internal" href="../get-started/quick-overview.html#learn-the-basics">Learn the basics</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../get-started/quick-overview.html#widgets">Widgets</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/quick-overview.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/quick-overview.html#parts">Parts</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/quick-overview.html#states">States</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/quick-overview.html#styles">Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/quick-overview.html#themes">Themes</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../get-started/quick-overview.html#examples">Examples</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../get-started/quick-overview.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/quick-overview.html#id1">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../get-started/quick-overview.html#micropython">Micropython</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../get-started/pc-simulator.html">Simulator on PC</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../get-started/pc-simulator.html#select-an-ide">Select an IDE</a></li>
<li class="toctree-l3"><a class="reference internal" href="../get-started/pc-simulator.html#set-up-eclipse-cdt">Set-up Eclipse CDT</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../get-started/pc-simulator.html#install-eclipse-cdt">Install Eclipse CDT</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/pc-simulator.html#install-sdl-2">Install SDL 2</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/pc-simulator.html#pre-configured-project">Pre-configured project</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/pc-simulator.html#add-the-pre-configured-project-to-eclipse-cdt">Add the pre-configured project to Eclipse CDT</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/pc-simulator.html#compile-and-run">Compile and Run</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../get-started/stm32.html">STM32</a></li>
<li class="toctree-l2"><a class="reference internal" href="../get-started/nxp.html">NXP</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../get-started/nxp.html#creating-new-project-with-lvgl">Creating new project with LVGL</a></li>
<li class="toctree-l3"><a class="reference internal" href="../get-started/nxp.html#adding-hw-acceleration-for-nxp-imx-rt-platforms-using-pxp-pixel-pipeline-engine-for-existing-projects">Adding HW acceleration for NXP iMX RT platforms using PXP (PiXel Pipeline) engine for existing projects</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../get-started/nxp.html#features-supported">Features supported:</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/nxp.html#basic-configuration">Basic configuration:</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/nxp.html#basic-initialization">Basic initialization:</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/nxp.html#project-setup">Project setup:</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/nxp.html#advanced-configuration">Advanced configuration:</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../get-started/espressif.html">Espressif (ESP32)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../get-started/espressif.html#get-the-lvgl-demo-project-for-esp32">Get the LVGL demo project for ESP32</a></li>
<li class="toctree-l3"><a class="reference internal" href="../get-started/espressif.html#use-lvgl-in-your-esp32-project">Use LVGL in your ESP32 project</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../get-started/espressif.html#prerequisites">Prerequisites</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/espressif.html#get-lvgl">Get LVGL</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../get-started/espressif.html#use-lvgl-esp32-drivers-in-your-project">Use lvgl_esp32_drivers in your project</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../get-started/espressif.html#support-for-esp32-s2">Support for ESP32-S2</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../get-started/arduino.html">Arduino</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../get-started/arduino.html#get-the-lvgl-ardunio-library">Get the LVGL Ardunio library</a></li>
<li class="toctree-l3"><a class="reference internal" href="../get-started/arduino.html#set-up-drivers">Set up drivers</a></li>
<li class="toctree-l3"><a class="reference internal" href="../get-started/arduino.html#configure-lvgl">Configure LVGL</a></li>
<li class="toctree-l3"><a class="reference internal" href="../get-started/arduino.html#configure-the-examples">Configure the examples</a></li>
<li class="toctree-l3"><a class="reference internal" href="../get-started/arduino.html#initialize-lvgl-and-run-an-example">Initialize LVGL and run an example</a></li>
<li class="toctree-l3"><a class="reference internal" href="../get-started/arduino.html#debugging-and-logging">Debugging and logging</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../get-started/micropython.html">Micropython</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../get-started/micropython.html#what-is-micropython">What is Micropython?</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../get-started/micropython.html#highlights-of-micropython">Highlights of Micropython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../get-started/micropython.html#why-micropython-lvgl">Why Micropython + LVGL?</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../get-started/micropython.html#here-are-some-advantages-of-using-lvgl-in-micropython">Here are some advantages of using LVGL in Micropython:</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/micropython.html#micropython-lvgl-could-be-used-for">Micropython + LVGL could be used for:</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../get-started/micropython.html#so-what-does-it-look-like">So what does it look like?</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../get-started/micropython.html#a-simple-example">A simple example</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../get-started/micropython.html#how-can-i-use-it">How can I use it?</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../get-started/micropython.html#online-simulator">Online Simulator</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/micropython.html#pc-simulator">PC Simulator</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/micropython.html#embedded-platform">Embedded platform</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../get-started/micropython.html#where-can-i-find-more-information">Where can I find more information?</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../get-started/nuttx.html">NuttX RTOS</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../get-started/nuttx.html#what-is-nuttx">What is NuttX?</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../get-started/nuttx.html#highlights-of-nuttx">Highlights of NuttX</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../get-started/nuttx.html#why-nuttx-lvgl">Why NuttX + LVGL?</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../get-started/nuttx.html#here-are-some-advantages-of-using-lvgl-in-nuttx">Here are some advantages of using LVGL in NuttX</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/nuttx.html#nuttx-lvgl-could-be-used-for">NuttX + LVGL could be used for</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../get-started/nuttx.html#how-to-get-started-with-nuttx-and-lvgl">How to get started with NuttX and LVGL?</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../get-started/nuttx.html#first-you-need-to-install-the-pre-requisite-on-your-system">First you need to install the pre-requisite on your system</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/nuttx.html#now-let-s-to-create-a-workspace-to-save-our-files">Now let's to create a workspace to save our files</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/nuttx.html#clone-the-nuttx-and-apps-repositories">Clone the NuttX and Apps repositories:</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/nuttx.html#configure-nuttx-to-use-the-stm32f429i-disco-board-and-the-lvgl-demo">Configure NuttX to use the stm32f429i-disco board and the LVGL Demo</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/nuttx.html#flashing-the-firmware-in-the-board-using-openocd">Flashing the firmware in the board using OpenOCD:</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../get-started/nuttx.html#where-can-i-find-more-information">Where can I find more information?</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Porting</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="project.html">Set-up a project</a><ul>
<li class="toctree-l3"><a class="reference internal" href="project.html#get-the-library">Get the library</a></li>
<li class="toctree-l3"><a class="reference internal" href="project.html#configuration-file">Configuration file</a></li>
<li class="toctree-l3"><a class="reference internal" href="project.html#initialization">Initialization</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="display.html">Display interface</a><ul>
<li class="toctree-l3"><a class="reference internal" href="display.html#draw-buffer">Draw buffer</a></li>
<li class="toctree-l3"><a class="reference internal" href="display.html#display-driver">Display driver</a><ul>
<li class="toctree-l4"><a class="reference internal" href="display.html#mandatory-fields">Mandatory fields</a></li>
<li class="toctree-l4"><a class="reference internal" href="display.html#optional-fields">Optional fields</a></li>
<li class="toctree-l4"><a class="reference internal" href="display.html#examples">Examples</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="display.html#rotation">Rotation</a></li>
<li class="toctree-l3"><a class="reference internal" href="display.html#further-reading">Further reading</a></li>
<li class="toctree-l3"><a class="reference internal" href="display.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">Input device interface</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#types-of-input-devices">Types of input devices</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#touchpad-mouse-or-any-pointer">Touchpad, mouse or any pointer</a></li>
<li class="toctree-l4"><a class="reference internal" href="#keypad-or-keyboard">Keypad or keyboard</a></li>
<li class="toctree-l4"><a class="reference internal" href="#encoder">Encoder</a></li>
<li class="toctree-l4"><a class="reference internal" href="#button">Button</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="#other-features">Other features</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#parameters">Parameters</a></li>
<li class="toctree-l4"><a class="reference internal" href="#feedback">Feedback</a></li>
<li class="toctree-l4"><a class="reference internal" href="#associating-with-a-display">Associating with a display</a></li>
<li class="toctree-l4"><a class="reference internal" href="#buffered-reading">Buffered reading</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="#further-reading">Further reading</a></li>
<li class="toctree-l3"><a class="reference internal" href="#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="tick.html">Tick interface</a><ul>
<li class="toctree-l3"><a class="reference internal" href="tick.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="task-handler.html">Task Handler</a></li>
<li class="toctree-l2"><a class="reference internal" href="sleep.html">Sleep management</a></li>
<li class="toctree-l2"><a class="reference internal" href="os.html">Operating system and interrupts</a><ul>
<li class="toctree-l3"><a class="reference internal" href="os.html#tasks-and-threads">Tasks and threads</a></li>
<li class="toctree-l3"><a class="reference internal" href="os.html#interrupts">Interrupts</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="log.html">Logging</a><ul>
<li class="toctree-l3"><a class="reference internal" href="log.html#log-level">Log level</a></li>
<li class="toctree-l3"><a class="reference internal" href="log.html#printing-logs">Printing logs</a><ul>
<li class="toctree-l4"><a class="reference internal" href="log.html#logging-with-printf">Logging with printf</a></li>
<li class="toctree-l4"><a class="reference internal" href="log.html#custom-log-function">Custom log function</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="log.html#add-logs">Add logs</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../overview/index.html">Overview</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../overview/object.html">Objects</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../overview/object.html#attributes">Attributes</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/object.html#basic-attributes">Basic attributes</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/object.html#specific-attributes">Specific attributes</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../overview/object.html#working-mechanisms">Working mechanisms</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/object.html#parent-child-structure">Parent-child structure</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/object.html#moving-together">Moving together</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/object.html#visibility-only-on-the-parent">Visibility only on the parent</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/object.html#create-and-delete-objects">Create and delete objects</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../overview/object.html#screens">Screens</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/object.html#create-screens">Create screens</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/object.html#get-the-active-screen">Get the active screen</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/object.html#load-screens">Load screens</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/object.html#layers">Layers</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/object.html#handling-multiple-displays">Handling multiple displays</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../overview/object.html#parts">Parts</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/object.html#states">States</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../overview/coords.html">Positions, sizes, and layouts</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../overview/coords.html#overview">Overview</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/coords.html#units">Units</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/coords.html#boxing-model">Boxing model</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/coords.html#important-notes">Important notes</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../overview/coords.html#position">Position</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/coords.html#simple-way">Simple way</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/coords.html#align">Align</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../overview/coords.html#size">Size</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/coords.html#id1">Simple way</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../overview/coords.html#using-styles">Using styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/coords.html#translation">Translation</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/coords.html#transformation">Transformation</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/coords.html#min-and-max-size">Min and Max size</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../overview/coords.html#layout">Layout</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/coords.html#id2">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/coords.html#built-in-layout">Built-in layout</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/coords.html#flags">Flags</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/coords.html#adding-new-layouts">Adding new layouts</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../overview/coords.html#examples">Examples</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../overview/style.html">Styles</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../overview/style.html#states">States</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/style.html#cascading-styles">Cascading styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/style.html#inheritance">Inheritance</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/style.html#parts">Parts</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/style.html#initialize-styles-and-set-get-properties">Initialize styles and set/get properties</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/style.html#add-and-remove-styles-to-a-widget">Add and remove styles to a widget</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/style.html#add-styles">Add styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style.html#remove-styles">Remove styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style.html#report-style-changes">Report style changes</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style.html#get-a-property-s-value-on-an-object">Get a property's value on an object</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../overview/style.html#local-styles">Local styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/style.html#properties">Properties</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/style.html#typical-background-properties">Typical background properties</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../overview/style.html#transitions">Transitions</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/style.html#color-filter">Color filter</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/style.html#themes">Themes</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/style.html#extending-themes">Extending themes</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../overview/style.html#examples">Examples</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/style.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../overview/style.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../overview/style-props.html">Style properties</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../overview/style-props.html#size-and-position">Size and position</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#width">width</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#min-width">min_width</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#max-width">max_width</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#height">height</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#min-height">min_height</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#max-height">max_height</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#x">x</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#y">y</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#align">align</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#transform-width">transform_width</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#transform-height">transform_height</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#translate-x">translate_x</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#translate-y">translate_y</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#transform-zoom">transform_zoom</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#transform-angle">transform_angle</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../overview/style-props.html#padding">Padding</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#pad-top">pad_top</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#pad-bottom">pad_bottom</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#pad-left">pad_left</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#pad-right">pad_right</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#pad-row">pad_row</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#pad-column">pad_column</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../overview/style-props.html#miscellaneous">Miscellaneous</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#radius">radius</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#clip-corner">clip_corner</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#opa">opa</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#color-filter-dsc">color_filter_dsc</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#color-filter-opa">color_filter_opa</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#anim-time">anim_time</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#anim-speed">anim_speed</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#transition">transition</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#blend-mode">blend_mode</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#layout">layout</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#base-dir">base_dir</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../overview/style-props.html#background">Background</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#bg-color">bg_color</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#bg-opa">bg_opa</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#bg-grad-color">bg_grad_color</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#bg-grad-dir">bg_grad_dir</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#bg-main-stop">bg_main_stop</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#bg-grad-stop">bg_grad_stop</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#bg-img-src">bg_img_src</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#bg-img-opa">bg_img_opa</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#bg-img-recolor">bg_img_recolor</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#bg-img-recolor-opa">bg_img_recolor_opa</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#bg-img-tiled">bg_img_tiled</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../overview/style-props.html#border">Border</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#border-color">border_color</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#border-opa">border_opa</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#border-width">border_width</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#border-side">border_side</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#border-post">border_post</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../overview/style-props.html#text">Text</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#text-color">text_color</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#text-opa">text_opa</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#text-font">text_font</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#text-letter-space">text_letter_space</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#text-line-space">text_line_space</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#text-decor">text_decor</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#text-align">text_align</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../overview/style-props.html#image">Image</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#img-opa">img_opa</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#img-recolor">img_recolor</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#img-recolor-opa">img_recolor_opa</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../overview/style-props.html#outline">Outline</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#outline-width">outline_width</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#outline-color">outline_color</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#outline-opa">outline_opa</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#outline-pad">outline_pad</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../overview/style-props.html#shadow">Shadow</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#shadow-width">shadow_width</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#shadow-ofs-x">shadow_ofs_x</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#shadow-ofs-y">shadow_ofs_y</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#shadow-spread">shadow_spread</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#shadow-color">shadow_color</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#shadow-opa">shadow_opa</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../overview/style-props.html#line">Line</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#line-width">line_width</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#line-dash-width">line_dash_width</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#line-dash-gap">line_dash_gap</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#line-rounded">line_rounded</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#line-color">line_color</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#line-opa">line_opa</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../overview/style-props.html#arc">Arc</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#arc-width">arc_width</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#arc-rounded">arc_rounded</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#arc-color">arc_color</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#arc-opa">arc_opa</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style-props.html#arc-img-src">arc_img_src</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../overview/scroll.html">Scroll</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../overview/scroll.html#overview">Overview</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/scroll.html#scrollbar">Scrollbar</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/scroll.html#events">Events</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../overview/scroll.html#basic-example">Basic example</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/scroll.html#features-of-scrolling">Features of scrolling</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/scroll.html#scrollable">Scrollable</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/scroll.html#scroll-chain">Scroll chain</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/scroll.html#scroll-momentum">Scroll momentum</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/scroll.html#elastic-scroll">Elastic scroll</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/scroll.html#snapping">Snapping</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/scroll.html#scroll-one">Scroll one</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/scroll.html#scroll-on-focus">Scroll on focus</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../overview/scroll.html#scroll-manually">Scroll manually</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/scroll.html#self-size">Self size</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/scroll.html#examples">Examples</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/scroll.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/scroll.html#micropython">MicroPython</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../overview/layer.html">Layers</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../overview/layer.html#order-of-creation">Order of creation</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/layer.html#bring-to-the-foreground">Bring to the foreground</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/layer.html#top-and-sys-layers">Top and sys layers</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../overview/event.html">Events</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../overview/event.html#add-events-to-the-object">Add events to the object</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/event.html#remove-event-s-from-an-object">Remove event(s) from an object</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/event.html#event-codes">Event codes</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/event.html#input-device-events">Input device events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/event.html#drawing-events">Drawing events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/event.html#other-events">Other events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/event.html#special-events">Special events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/event.html#custom-events">Custom events</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../overview/event.html#sending-events">Sending events</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/event.html#refresh-event">Refresh event</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../overview/event.html#fields-of-lv-event-t">Fields of lv_event_t</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/event.html#event-bubbling">Event bubbling</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/event.html#examples">Examples</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/event.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/event.html#micropython">MicroPython</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../overview/indev.html">Input devices</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../overview/indev.html#pointers">Pointers</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/indev.html#keypad-and-encoder">Keypad and encoder</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/indev.html#groups">Groups</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/indev.html#styling">Styling</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../overview/indev.html#api">API</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/indev.html#input-device">Input device</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/indev.html#id1">Groups</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../overview/display.html">Displays</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../overview/display.html#multiple-display-support">Multiple display support</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/display.html#using-only-one-display">Using only one display</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/display.html#mirror-display">Mirror display</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/display.html#split-image">Split image</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../overview/display.html#screens">Screens</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/display.html#transparent-screens">Transparent screens</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../overview/display.html#features-of-displays">Features of displays</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/display.html#inactivity">Inactivity</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/display.html#background">Background</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../overview/display.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../overview/color.html">Colors</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../overview/color.html#creating-colors">Creating colors</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/color.html#rgb">RGB</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/color.html#hsv">HSV</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/color.html#palette">Palette</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/color.html#modify-and-mix-colors">Modify and mix colors</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/color.html#built-in-colors">Built-in colors</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../overview/color.html#opacity">Opacity</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/color.html#color-types">Color types</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/color.html#convert-color">Convert color</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../overview/color.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../overview/font.html">Fonts</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../overview/font.html#unicode-support">Unicode support</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/font.html#built-in-fonts">Built-in fonts</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/font.html#normal-fonts">Normal fonts</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/font.html#special-fonts">Special fonts</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../overview/font.html#special-features">Special features</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/font.html#bidirectional-support">Bidirectional support</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/font.html#arabic-and-persian-support">Arabic and Persian support</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/font.html#subpixel-rendering">Subpixel rendering</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/font.html#compress-fonts">Compress fonts</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../overview/font.html#add-new-font">Add new font</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/font.html#add-new-symbols">Add new symbols</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/font.html#load-font-at-run-time">Load font at run-time</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/font.html#add-a-new-font-engine">Add a new font engine</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../overview/image.html">Images</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../overview/image.html#store-images">Store images</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/image.html#variables">Variables</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/image.html#files">Files</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../overview/image.html#color-formats">Color formats</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/image.html#add-and-use-images">Add and use images</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/image.html#online-converter">Online converter</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/image.html#manually-create-an-image">Manually create an image</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/image.html#use-images">Use images</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../overview/image.html#image-decoder">Image decoder</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/image.html#custom-image-formats">Custom image formats</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/image.html#register-an-image-decoder">Register an image decoder</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/image.html#manually-use-an-image-decoder">Manually use an image decoder</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../overview/image.html#image-caching">Image caching</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/image.html#cache-size">Cache size</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/image.html#value-of-images">Value of images</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/image.html#memory-usage">Memory usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/image.html#clean-the-cache">Clean the cache</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../overview/image.html#api">API</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/image.html#image-buffer">Image buffer</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../overview/file-system.html">File system</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../overview/file-system.html#ready-to-use-drivers">Ready to use drivers</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/file-system.html#add-a-driver">Add a driver</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/file-system.html#registering-a-driver">Registering a driver</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/file-system.html#implementing-the-callbacks">Implementing the callbacks</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/file-system.html#other-callbacks">Other callbacks</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../overview/file-system.html#usage-example">Usage example</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/file-system.html#use-drivers-for-images">Use drivers for images</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/file-system.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../overview/animation.html">Animations</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../overview/animation.html#create-an-animation">Create an animation</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/animation.html#animation-path">Animation path</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/animation.html#speed-vs-time">Speed vs time</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/animation.html#delete-animations">Delete animations</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/animation.html#examples">Examples</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/animation.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/animation.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../overview/animation.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../overview/timer.html">Timers</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../overview/timer.html#create-a-timer">Create a timer</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/timer.html#ready-and-reset">Ready and Reset</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/timer.html#set-parameters">Set parameters</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/timer.html#repeat-count">Repeat count</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/timer.html#measure-idle-time">Measure idle time</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/timer.html#asynchronous-calls">Asynchronous calls</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/timer.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../overview/drawing.html">Drawing</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../overview/drawing.html#mechanism-of-screen-refreshing">Mechanism of screen refreshing</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/drawing.html#masking">Masking</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/drawing.html#hook-drawing">Hook drawing</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/drawing.html#main-drawing">Main drawing</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/drawing.html#post-drawing">Post drawing</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/drawing.html#part-drawing">Part drawing</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/drawing.html#others">Others</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../overview/new_widget.html">New widget</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../widgets/index.html">Widgets</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../widgets/obj.html">Base object (lv_obj)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/obj.html#overview">Overview</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/obj.html#coordinates">Coordinates</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/obj.html#parents-and-children">Parents and children</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/obj.html#screens">Screens</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/obj.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/obj.html#styles">Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/obj.html#flags">Flags</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/obj.html#groups">Groups</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/obj.html#extended-click-area">Extended click area</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/obj.html#id1">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/obj.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/obj.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/obj.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/obj.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/obj.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/core/index.html">Core widgets</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/core/arc.html">Arc (lv_arc)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/arc.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/arc.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/arc.html#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/arc.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/arc.html#keys">Keys</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/arc.html#example">Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/arc.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/core/bar.html">Bar (lv_bar)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/bar.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/bar.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/bar.html#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/bar.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/bar.html#keys">Keys</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/bar.html#example">Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/bar.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/core/btn.html">Button (lv_btn)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/btn.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/btn.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/btn.html#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/btn.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/btn.html#keys">Keys</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/btn.html#example">Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/btn.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/core/btnmatrix.html">Button matrix (lv_btnmatrix)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/btnmatrix.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/btnmatrix.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/btnmatrix.html#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/btnmatrix.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/btnmatrix.html#keys">Keys</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/btnmatrix.html#example">Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/btnmatrix.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/core/canvas.html">Canvas (lv_canvas)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/canvas.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/canvas.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/canvas.html#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/canvas.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/canvas.html#keys">Keys</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/canvas.html#example">Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/canvas.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/core/checkbox.html">Checkbox (lv_checkbox)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/checkbox.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/checkbox.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/checkbox.html#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/checkbox.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/checkbox.html#keys">Keys</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/checkbox.html#example">Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/checkbox.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/core/dropdown.html">Drop-down list (lv_dropdown)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/dropdown.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/dropdown.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/dropdown.html#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/dropdown.html#id1">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/dropdown.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/dropdown.html#keys">Keys</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/dropdown.html#example">Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/dropdown.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/core/img.html">Image (lv_img)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/img.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/img.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/img.html#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/img.html#transformations">Transformations</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/img.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/img.html#keys">Keys</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/img.html#example">Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/img.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/core/label.html">Label (lv_label)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/label.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/label.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/label.html#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/label.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/label.html#keys">Keys</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/label.html#example">Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/label.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/core/line.html">Line (lv_line)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/line.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/line.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/line.html#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/line.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/line.html#keys">Keys</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/line.html#example">Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/line.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/core/roller.html">Roller (lv_roller)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/roller.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/roller.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/roller.html#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/roller.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/roller.html#keys">Keys</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/roller.html#example">Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/roller.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/core/slider.html">Slider (lv_slider)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/slider.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/slider.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/slider.html#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/slider.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/slider.html#keys">Keys</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/slider.html#example">Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/slider.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/core/switch.html">Switch (lv_switch)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/switch.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/switch.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/switch.html#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/switch.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/switch.html#keys">Keys</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/switch.html#example">Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/switch.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/core/table.html">Table (lv_table)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/table.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/table.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/table.html#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/table.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/table.html#keys">Keys</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/table.html#example">Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/table.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/core/textarea.html">Text area (lv_textarea)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/textarea.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/textarea.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/textarea.html#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/textarea.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/textarea.html#keys">Keys</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/textarea.html#example">Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/core/textarea.html#api">API</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/extra/index.html">Extra widgets</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/extra/calendar.html">Calendar (lv_calendar)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/calendar.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/calendar.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/calendar.html#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/calendar.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/calendar.html#keys">Keys</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/calendar.html#headers">Headers</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/calendar.html#example">Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/calendar.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/extra/chart.html">Chart (lv_chart)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/chart.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/chart.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/chart.html#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/chart.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/chart.html#keys">Keys</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/chart.html#example">Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/chart.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/extra/colorwheel.html">Color wheel (lv_colorwheel)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/colorwheel.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/colorwheel.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/colorwheel.html#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/colorwheel.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/colorwheel.html#keys">Keys</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/colorwheel.html#example">Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/colorwheel.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/extra/imgbtn.html">Image button (lv_imgbtn)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/imgbtn.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/imgbtn.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/imgbtn.html#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/imgbtn.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/imgbtn.html#keys">Keys</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/imgbtn.html#example">Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/imgbtn.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/extra/keyboard.html">Keyboard (lv_keyboard)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/keyboard.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/keyboard.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/keyboard.html#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/keyboard.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/keyboard.html#keys">Keys</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/keyboard.html#examples">Examples</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/keyboard.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/extra/led.html">LED (lv_led)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/led.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/led.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/led.html#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/led.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/led.html#keys">Keys</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/led.html#example">Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/led.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/extra/list.html">List (lv_list)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/list.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/list.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/list.html#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/list.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/list.html#keys">Keys</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/list.html#example">Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/list.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/extra/meter.html">Meter (lv_meter)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/meter.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/meter.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/meter.html#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/meter.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/meter.html#keys">Keys</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/meter.html#example">Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/meter.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/extra/msgbox.html">Message box (lv_msgbox)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/msgbox.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/msgbox.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/msgbox.html#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/msgbox.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/msgbox.html#keys">Keys</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/msgbox.html#example">Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/msgbox.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/extra/span.html">Span (lv_span)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/span.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/span.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/span.html#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/span.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/span.html#keys">Keys</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/span.html#example">Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/span.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/extra/spinbox.html">Spinbox (lv_spinbox)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/spinbox.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/spinbox.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/spinbox.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/spinbox.html#keys">Keys</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/spinbox.html#example">Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/spinbox.html#api">API</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/spinbox.html#id1">Example</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/extra/spinner.html">Spinner (lv_spinner)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/spinner.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/spinner.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/spinner.html#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/spinner.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/spinner.html#keys">Keys</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/spinner.html#example">Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/spinner.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/extra/tabview.html">Tabview (lv_tabview)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/tabview.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/tabview.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/tabview.html#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/tabview.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/tabview.html#keys">Keys</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/tabview.html#example">Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/tabview.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/extra/tileview.html">Tile view (lv_tileview)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/tileview.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/tileview.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/tileview.html#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/tileview.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/tileview.html#keys">Keys</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/tileview.html#example">Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/tileview.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/extra/win.html">Window (lv_win)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/win.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/win.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/win.html#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/win.html#get-the-parts">Get the parts</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/win.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/win.html#keys">Keys</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/win.html#example">Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/extra/win.html#api">API</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../layouts/index.html">Layouts</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../layouts/flex.html">Flex</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../layouts/flex.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../layouts/flex.html#terms">Terms</a></li>
<li class="toctree-l3"><a class="reference internal" href="../layouts/flex.html#simple-interface">Simple interface</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../layouts/flex.html#flex-flow">Flex flow</a></li>
<li class="toctree-l4"><a class="reference internal" href="../layouts/flex.html#flex-align">Flex align</a></li>
<li class="toctree-l4"><a class="reference internal" href="../layouts/flex.html#flex-grow">Flex grow</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../layouts/flex.html#style-interface">Style interface</a></li>
<li class="toctree-l3"><a class="reference internal" href="../layouts/flex.html#other-features">Other features</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../layouts/flex.html#rtl">RTL</a></li>
<li class="toctree-l4"><a class="reference internal" href="../layouts/flex.html#new-track">New track</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../layouts/flex.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../layouts/flex.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../layouts/flex.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../layouts/flex.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../layouts/grid.html">Grid</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../layouts/grid.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../layouts/grid.html#terms">Terms</a></li>
<li class="toctree-l3"><a class="reference internal" href="../layouts/grid.html#simple-interface">Simple interface</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../layouts/grid.html#grid-descriptors">Grid descriptors</a></li>
<li class="toctree-l4"><a class="reference internal" href="../layouts/grid.html#grid-items">Grid items</a></li>
<li class="toctree-l4"><a class="reference internal" href="../layouts/grid.html#grid-align">Grid align</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../layouts/grid.html#style-interface">Style interface</a></li>
<li class="toctree-l3"><a class="reference internal" href="../layouts/grid.html#other-features">Other features</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../layouts/grid.html#rtl">RTL</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../layouts/grid.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../layouts/grid.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../layouts/grid.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../layouts/grid.html#api">API</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../CONTRIBUTING.html">Contributing</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../CONTRIBUTING.html#introduction">Introduction</a></li>
<li class="toctree-l2"><a class="reference internal" href="../CONTRIBUTING.html#pull-request">Pull request</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../CONTRIBUTING.html#from-github">From GitHub</a></li>
<li class="toctree-l3"><a class="reference internal" href="../CONTRIBUTING.html#from-command-line">From command line</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../CONTRIBUTING.html#developer-certification-of-origin-dco">Developer Certification of Origin (DCO)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../CONTRIBUTING.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../CONTRIBUTING.html#accepted-licenses-and-copyright-notices">Accepted licenses and copyright notices</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../CONTRIBUTING.html#your-own-work">Your own work</a></li>
<li class="toctree-l4"><a class="reference internal" href="../CONTRIBUTING.html#use-code-from-online-source">Use code from online source</a></li>
<li class="toctree-l4"><a class="reference internal" href="../CONTRIBUTING.html#use-mit-licensed-code">Use MIT licensed code</a></li>
<li class="toctree-l4"><a class="reference internal" href="../CONTRIBUTING.html#use-gpl-licensed-code">Use GPL licensed code</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../CONTRIBUTING.html#ways-to-contribute">Ways to contribute</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../CONTRIBUTING.html#give-lvgl-a-star">Give LVGL a Star</a></li>
<li class="toctree-l3"><a class="reference internal" href="../CONTRIBUTING.html#tell-what-you-have-achieved">Tell what you have achieved</a></li>
<li class="toctree-l3"><a class="reference internal" href="../CONTRIBUTING.html#write-examples">Write examples</a></li>
<li class="toctree-l3"><a class="reference internal" href="../CONTRIBUTING.html#improve-the-docs">Improve the docs</a></li>
<li class="toctree-l3"><a class="reference internal" href="../CONTRIBUTING.html#report-bugs">Report bugs</a></li>
<li class="toctree-l3"><a class="reference internal" href="../CONTRIBUTING.html#send-fixes">Send fixes</a></li>
<li class="toctree-l3"><a class="reference internal" href="../CONTRIBUTING.html#join-the-conversations-in-the-forum">Join the conversations in the Forum</a></li>
<li class="toctree-l3"><a class="reference internal" href="../CONTRIBUTING.html#add-features">Add features</a></li>
<li class="toctree-l3"><a class="reference internal" href="../CONTRIBUTING.html#become-a-maintainer">Become a maintainer</a></li>
<li class="toctree-l3"><a class="reference internal" href="../CONTRIBUTING.html#move-your-project-repository-under-lvgl-organization">Move your project repository under LVGL organization</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../CHANGELOG.html">Changelog</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../CHANGELOG.html#v8-0-2-16-07-2021">v8.0.2 (16.07.2021)</a></li>
<li class="toctree-l2"><a class="reference internal" href="../CHANGELOG.html#v8-0-1-14-06-2021">v8.0.1 (14.06.2021)</a></li>
<li class="toctree-l2"><a class="reference internal" href="../CHANGELOG.html#v8-0-0-01-06-2021">v8.0.0 (01.06.2021)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../CHANGELOG.html#directory-structure">Directory structure</a></li>
<li class="toctree-l3"><a class="reference internal" href="../CHANGELOG.html#widget-changes">Widget changes</a></li>
<li class="toctree-l3"><a class="reference internal" href="../CHANGELOG.html#new-scrolling">New scrolling</a></li>
<li class="toctree-l3"><a class="reference internal" href="../CHANGELOG.html#new-layouts">New layouts</a></li>
<li class="toctree-l3"><a class="reference internal" href="../CHANGELOG.html#styles">Styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../CHANGELOG.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../CHANGELOG.html#driver-changes">Driver changes</a></li>
<li class="toctree-l3"><a class="reference internal" href="../CHANGELOG.html#other-changes">Other changes</a></li>
<li class="toctree-l3"><a class="reference internal" href="../CHANGELOG.html#new-release-policy">New release policy</a></li>
<li class="toctree-l3"><a class="reference internal" href="../CHANGELOG.html#migrating-from-v7-to-v8">Migrating from v7 to v8</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../CHANGELOG.html#v7-11-0-16-03-2021">v7.11.0 (16.03.2021)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../CHANGELOG.html#new-features">New features</a></li>
<li class="toctree-l3"><a class="reference internal" href="../CHANGELOG.html#bugfixes">Bugfixes</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../CHANGELOG.html#v7-10-1-16-02-2021">v7.10.1 (16.02.2021)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../CHANGELOG.html#id1">Bugfixes</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../CHANGELOG.html#v7-10-0-02-02-2021">v7.10.0 (02.02.2021)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../CHANGELOG.html#id2">New features</a></li>
<li class="toctree-l3"><a class="reference internal" href="../CHANGELOG.html#id3">Bugfixes</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../CHANGELOG.html#v7-9-1-19-01-2021">v7.9.1 (19.01.2021)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../CHANGELOG.html#id4">Bugfixes</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../CHANGELOG.html#v7-9-0-05-01-2021">v7.9.0 (05.01.2021)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../CHANGELOG.html#id5">New features</a></li>
<li class="toctree-l3"><a class="reference internal" href="../CHANGELOG.html#id6">Bugfixes</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../CHANGELOG.html#v7-8-1-15-12-2020">v7.8.1 (15.12.2020)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../CHANGELOG.html#id7">Bugfixes</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../CHANGELOG.html#v7-8-0-01-12-2020">v7.8.0 (01.12.2020)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../CHANGELOG.html#id8">New features</a></li>
<li class="toctree-l3"><a class="reference internal" href="../CHANGELOG.html#id9">Bugfixes</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../CHANGELOG.html#v7-7-2-17-11-2020">v7.7.2 (17.11.2020)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../CHANGELOG.html#id10">Bugfixes</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../CHANGELOG.html#v7-7-1-03-11-2020">v7.7.1 (03.11.2020)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../CHANGELOG.html#id11">Bugfixes</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../CHANGELOG.html#v7-7-0-20-10-2020">v7.7.0 (20.10.2020)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../CHANGELOG.html#id12">New features</a></li>
<li class="toctree-l3"><a class="reference internal" href="../CHANGELOG.html#id13">Bugfixes</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../CHANGELOG.html#v7-6-1-06-10-2020">v7.6.1 (06.10.2020)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../CHANGELOG.html#id14">Bugfixes</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../CHANGELOG.html#v7-6-0-22-09-2020">v7.6.0 (22.09.2020)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../CHANGELOG.html#id15">New features</a></li>
<li class="toctree-l3"><a class="reference internal" href="../CHANGELOG.html#id16">Bugfixes</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../CHANGELOG.html#v7-5-0-15-09-2020">v7.5.0 (15.09.2020)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../CHANGELOG.html#id17">New features</a></li>
<li class="toctree-l3"><a class="reference internal" href="../CHANGELOG.html#id18">Bugfixes</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../CHANGELOG.html#v7-4-0-01-09-2020">v7.4.0 (01.09.2020)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../CHANGELOG.html#id19">New features</a></li>
<li class="toctree-l3"><a class="reference internal" href="../CHANGELOG.html#id20">Bugfixes</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../CHANGELOG.html#v7-3-1-18-08-2020">v7.3.1 (18.08.2020)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../CHANGELOG.html#id21">Bugfixes</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../CHANGELOG.html#v7-3-0-04-08-2020">v7.3.0 (04.08.2020)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../CHANGELOG.html#id22">New features</a></li>
<li class="toctree-l3"><a class="reference internal" href="../CHANGELOG.html#id23">Bugfixes</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../CHANGELOG.html#v7-2-0-21-07-2020">v7.2.0 (21.07.2020)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../CHANGELOG.html#id24">New features</a></li>
<li class="toctree-l3"><a class="reference internal" href="../CHANGELOG.html#id25">Bugfixes</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../CHANGELOG.html#v7-1-0-07-07-2020">v7.1.0 (07.07.2020)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../CHANGELOG.html#id26">New features</a></li>
<li class="toctree-l3"><a class="reference internal" href="../CHANGELOG.html#id27">Bugfixes</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../CHANGELOG.html#v7-0-2-16-06-2020">v7.0.2 (16.06.2020)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../CHANGELOG.html#id28">Bugfixes</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../CHANGELOG.html#v7-0-1-01-06-2020">v7.0.1 (01.06.2020)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../CHANGELOG.html#id29">Bugfixes</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../CHANGELOG.html#v7-0-0-18-05-2020">v7.0.0 (18.05.2020)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../CHANGELOG.html#documentation">Documentation</a></li>
<li class="toctree-l3"><a class="reference internal" href="../CHANGELOG.html#legal-changes">Legal changes</a></li>
<li class="toctree-l3"><a class="reference internal" href="../CHANGELOG.html#new-drawing-system">New drawing system</a></li>
<li class="toctree-l3"><a class="reference internal" href="../CHANGELOG.html#new-style-system">New style system</a></li>
<li class="toctree-l3"><a class="reference internal" href="../CHANGELOG.html#gpu-integration">GPU integration</a></li>
<li class="toctree-l3"><a class="reference internal" href="../CHANGELOG.html#renames">Renames</a></li>
<li class="toctree-l3"><a class="reference internal" href="../CHANGELOG.html#reworked-and-improved-object">Reworked and improved object</a></li>
<li class="toctree-l3"><a class="reference internal" href="../CHANGELOG.html#new-object-types">New object types</a></li>
<li class="toctree-l3"><a class="reference internal" href="../CHANGELOG.html#others">Others</a></li>
<li class="toctree-l3"><a class="reference internal" href="../CHANGELOG.html#demos">Demos</a></li>
<li class="toctree-l3"><a class="reference internal" href="../CHANGELOG.html#id30">New release policy</a></li>
<li class="toctree-l3"><a class="reference internal" href="../CHANGELOG.html#migrating-from-v6-to-v7">Migrating from v6 to v7</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../ROADMAP.html">Roadmap</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../ROADMAP.html#v8-x">v8.X</a></li>
<li class="toctree-l2"><a class="reference internal" href="../ROADMAP.html#ideas">Ideas</a></li>
<li class="toctree-l2"><a class="reference internal" href="../ROADMAP.html#v8">v8</a></li>
</ul>
</li>
</ul>

            
          
        </div>
        
      </div>
    </nav>

    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">

      
      <nav class="wy-nav-top" aria-label="top navigation">
        
          <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
          <a href="../index.html">LVGL</a>
        
      </nav>


      <div class="wy-nav-content">
        
        <div class="rst-content">
        
          



















<div role="navigation" aria-label="breadcrumbs navigation">

  <ul class="wy-breadcrumbs">
    
      <li><a href="../index.html" class="icon icon-home"></a> &raquo;</li>
        
          <li><a href="index.html">Porting</a> &raquo;</li>
        
      <li>Input device interface</li>
    
    
      <li class="wy-breadcrumbs-aside">
        
          
            
              <!-- User defined GitHub URL -->
              <a href="https://github.com/lvgl/lvgl/blob/5d0ba633a5dc8bb1c3e3714461b6839f205a69fa/docs/porting/indev.md" class="fa fa-github"> Edit on GitHub</a>
            
          
        
      </li>
    
  </ul>

  
  <hr/>
</div>
          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
           <div itemprop="articleBody">
            
  <div class="section" id="input-device-interface">
<h1>Input device interface<a class="headerlink" href="#input-device-interface" title="Permalink to this headline">¶</a></h1>
<div class="section" id="types-of-input-devices">
<h2>Types of input devices<a class="headerlink" href="#types-of-input-devices" title="Permalink to this headline">¶</a></h2>
<p>To register an input device an <code class="docutils literal notranslate"><span class="pre">lv_indev_drv_t</span></code> variable has to be initialized:</p>
<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="n">lv_indev_drv_t</span> <span class="n">indev_drv</span><span class="p">;</span>
<span class="n">lv_indev_drv_init</span><span class="p">(</span><span class="o">&amp;</span><span class="n">indev_drv</span><span class="p">);</span>      <span class="cm">/*Basic initialization*/</span>
<span class="n">indev_drv</span><span class="p">.</span><span class="n">type</span> <span class="o">=</span><span class="p">...</span>                 <span class="cm">/*See below.*/</span>
<span class="n">indev_drv</span><span class="p">.</span><span class="n">read_cb</span> <span class="o">=</span><span class="p">...</span>              <span class="cm">/*See below.*/</span>
<span class="cm">/*Register the driver in LVGL and save the created input device object*/</span>
<span class="n">lv_indev_t</span> <span class="o">*</span> <span class="n">my_indev</span> <span class="o">=</span> <span class="n">lv_indev_drv_register</span><span class="p">(</span><span class="o">&amp;</span><span class="n">indev_drv</span><span class="p">);</span>
</pre></div>
</div>
<p><code class="docutils literal notranslate"><span class="pre">type</span></code> can be</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">LV_INDEV_TYPE_POINTER</span></code> touchpad or mouse</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">LV_INDEV_TYPE_KEYPAD</span></code> keyboard or keypad</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">LV_INDEV_TYPE_ENCODER</span></code> encoder with left/right turn and push options</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">LV_INDEV_TYPE_BUTTON</span></code> external buttons virtually pressing the screen</p></li>
</ul>
<p><code class="docutils literal notranslate"><span class="pre">read_cb</span></code> is a function pointer which will be called periodically to report the current state of an input device.</p>
<p>Visit <a class="reference internal" href="../overview/indev.html"><span class="doc">Input devices</span></a> to learn more about input devices in general.</p>
<div class="section" id="touchpad-mouse-or-any-pointer">
<h3>Touchpad, mouse or any pointer<a class="headerlink" href="#touchpad-mouse-or-any-pointer" title="Permalink to this headline">¶</a></h3>
<p>Input devices that can click points on the screen belong to this category.</p>
<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="n">indev_drv</span><span class="p">.</span><span class="n">type</span> <span class="o">=</span> <span class="n">LV_INDEV_TYPE_POINTER</span><span class="p">;</span>
<span class="n">indev_drv</span><span class="p">.</span><span class="n">read_cb</span> <span class="o">=</span> <span class="n">my_input_read</span><span class="p">;</span>

<span class="p">...</span>

<span class="kt">void</span> <span class="n">my_input_read</span><span class="p">(</span><span class="n">lv_indev_drv_t</span> <span class="o">*</span> <span class="n">drv</span><span class="p">,</span> <span class="n">lv_indev_data_t</span><span class="o">*</span><span class="n">data</span><span class="p">)</span>
<span class="p">{</span>
  <span class="k">if</span><span class="p">(</span><span class="n">touchpad_pressed</span><span class="p">)</span> <span class="p">{</span>
    <span class="n">data</span><span class="o">-&gt;</span><span class="n">point</span><span class="p">.</span><span class="n">x</span> <span class="o">=</span> <span class="n">touchpad_x</span><span class="p">;</span>
    <span class="n">data</span><span class="o">-&gt;</span><span class="n">point</span><span class="p">.</span><span class="n">y</span> <span class="o">=</span> <span class="n">touchpad_y</span><span class="p">;</span>
    <span class="n">data</span><span class="o">-&gt;</span><span class="n">state</span> <span class="o">=</span> <span class="n">LV_INDEV_STATE_PRESSED</span><span class="p">;</span>
  <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
    <span class="n">data</span><span class="o">-&gt;</span><span class="n">state</span> <span class="o">=</span> <span class="n">LV_INDEV_STATE_RELEASED</span><span class="p">;</span> 
  <span class="p">}</span>
<span class="p">}</span>
</pre></div>
</div>
<p>To set a mouse cursor use <code class="docutils literal notranslate"><span class="pre">lv_indev_set_cursor(my_indev,</span> <span class="pre">&amp;img_cursor)</span></code>. (<code class="docutils literal notranslate"><span class="pre">my_indev</span></code> is the return value of <code class="docutils literal notranslate"><span class="pre">lv_indev_drv_register</span></code>)</p>
</div>
<div class="section" id="keypad-or-keyboard">
<h3>Keypad or keyboard<a class="headerlink" href="#keypad-or-keyboard" title="Permalink to this headline">¶</a></h3>
<p>Full keyboards with all the letters or simple keypads with a few navigation buttons belong here.</p>
<p>To use a keyboard/keypad:</p>
<ul class="simple">
<li><p>Register a <code class="docutils literal notranslate"><span class="pre">read_cb</span></code> function with <code class="docutils literal notranslate"><span class="pre">LV_INDEV_TYPE_KEYPAD</span></code> type.</p></li>
<li><p>An object group has to be created: <code class="docutils literal notranslate"><span class="pre">lv_group_t</span> <span class="pre">*</span> <span class="pre">g</span> <span class="pre">=</span> <span class="pre">lv_group_create()</span></code> and objects have to be added to it with <code class="docutils literal notranslate"><span class="pre">lv_group_add_obj(g,</span> <span class="pre">obj)</span></code></p></li>
<li><p>The created group has to be assigned to an input device: <code class="docutils literal notranslate"><span class="pre">lv_indev_set_group(my_indev,</span> <span class="pre">g)</span></code> (<code class="docutils literal notranslate"><span class="pre">my_indev</span></code> is the return value of <code class="docutils literal notranslate"><span class="pre">lv_indev_drv_register</span></code>)</p></li>
<li><p>Use <code class="docutils literal notranslate"><span class="pre">LV_KEY_...</span></code> to navigate among the objects in the group. See <code class="docutils literal notranslate"><span class="pre">lv_core/lv_group.h</span></code> for the available keys.</p></li>
</ul>
<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="n">indev_drv</span><span class="p">.</span><span class="n">type</span> <span class="o">=</span> <span class="n">LV_INDEV_TYPE_KEYPAD</span><span class="p">;</span>
<span class="n">indev_drv</span><span class="p">.</span><span class="n">read_cb</span> <span class="o">=</span> <span class="n">keyboard_read</span><span class="p">;</span>

<span class="p">...</span>

<span class="kt">void</span> <span class="n">keyboard_read</span><span class="p">(</span><span class="n">lv_indev_drv_t</span> <span class="o">*</span> <span class="n">drv</span><span class="p">,</span> <span class="n">lv_indev_data_t</span><span class="o">*</span><span class="n">data</span><span class="p">){</span>
  <span class="n">data</span><span class="o">-&gt;</span><span class="n">key</span> <span class="o">=</span> <span class="n">last_key</span><span class="p">();</span>            <span class="cm">/*Get the last pressed or released key*/</span>

  <span class="k">if</span><span class="p">(</span><span class="n">key_pressed</span><span class="p">())</span> <span class="n">data</span><span class="o">-&gt;</span><span class="n">state</span> <span class="o">=</span> <span class="n">LV_INDEV_STATE_PRESSED</span><span class="p">;</span>
  <span class="k">else</span> <span class="n">data</span><span class="o">-&gt;</span><span class="n">state</span> <span class="o">=</span> <span class="n">LV_INDEV_STATE_RELEASED</span><span class="p">;</span>
<span class="p">}</span>
</pre></div>
</div>
</div>
<div class="section" id="encoder">
<h3>Encoder<a class="headerlink" href="#encoder" title="Permalink to this headline">¶</a></h3>
<p>With an encoder you can do 4 things:</p>
<ol class="simple">
<li><p>Press its button</p></li>
<li><p>Long-press its button</p></li>
<li><p>Turn left</p></li>
<li><p>Turn right</p></li>
</ol>
<p>In short, the Encoder input devices work like this:</p>
<ul class="simple">
<li><p>By turning the encoder you can focus on the next/previous object.</p></li>
<li><p>When you press the encoder on a simple object (like a button), it will be clicked.</p></li>
<li><p>If you press the encoder on a complex object (like a list, message box, etc.) the object will go to edit mode whereby turning the encoder you can navigate inside the object.</p></li>
<li><p>To leave edit mode press long the button.</p></li>
</ul>
<p>To use an <em>Encoder</em> (similarly to the <em>Keypads</em>) the objects should be added to groups.</p>
<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="n">indev_drv</span><span class="p">.</span><span class="n">type</span> <span class="o">=</span> <span class="n">LV_INDEV_TYPE_ENCODER</span><span class="p">;</span>
<span class="n">indev_drv</span><span class="p">.</span><span class="n">read_cb</span> <span class="o">=</span> <span class="n">encoder_read</span><span class="p">;</span>

<span class="p">...</span>

<span class="kt">void</span> <span class="n">encoder_read</span><span class="p">(</span><span class="n">lv_indev_drv_t</span> <span class="o">*</span> <span class="n">drv</span><span class="p">,</span> <span class="n">lv_indev_data_t</span><span class="o">*</span><span class="n">data</span><span class="p">){</span>
  <span class="n">data</span><span class="o">-&gt;</span><span class="n">enc_diff</span> <span class="o">=</span> <span class="n">enc_get_new_moves</span><span class="p">();</span>

  <span class="k">if</span><span class="p">(</span><span class="n">enc_pressed</span><span class="p">())</span> <span class="n">data</span><span class="o">-&gt;</span><span class="n">state</span> <span class="o">=</span> <span class="n">LV_INDEV_STATE_PRESSED</span><span class="p">;</span>
  <span class="k">else</span> <span class="n">data</span><span class="o">-&gt;</span><span class="n">state</span> <span class="o">=</span> <span class="n">LV_INDEV_STATE_RELEASED</span><span class="p">;</span>
<span class="p">}</span>
</pre></div>
</div>
<div class="section" id="using-buttons-with-encoder-logic">
<h4>Using buttons with Encoder logic<a class="headerlink" href="#using-buttons-with-encoder-logic" title="Permalink to this headline">¶</a></h4>
<p>In addition to standard encoder behavior, you can also utilize its logic to navigate(focus) and edit widgets using buttons.
This is especially handy if you have only few buttons available, or you want to use other buttons in addition to encoder wheel.</p>
<p>You need to have 3 buttons available:</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">LV_KEY_ENTER</span></code> will simulate press or pushing of the encoder button</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">LV_KEY_LEFT</span></code> will simulate turning encoder left</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">LV_KEY_RIGHT</span></code> will simulate turning encoder right</p></li>
<li><p>other keys will be passed to the focused widget</p></li>
</ul>
<p>If you hold the keys it will simulate encoder click with period specified in <code class="docutils literal notranslate"><span class="pre">indev_drv.long_press_rep_time</span></code>.</p>
<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="n">indev_drv</span><span class="p">.</span><span class="n">type</span> <span class="o">=</span> <span class="n">LV_INDEV_TYPE_ENCODER</span><span class="p">;</span>
<span class="n">indev_drv</span><span class="p">.</span><span class="n">read_cb</span> <span class="o">=</span> <span class="n">encoder_with_keys_read</span><span class="p">;</span>

<span class="p">...</span>

<span class="kt">bool</span> <span class="n">encoder_with_keys_read</span><span class="p">(</span><span class="n">lv_indev_drv_t</span> <span class="o">*</span> <span class="n">drv</span><span class="p">,</span> <span class="n">lv_indev_data_t</span><span class="o">*</span><span class="n">data</span><span class="p">){</span>
  <span class="n">data</span><span class="o">-&gt;</span><span class="n">key</span> <span class="o">=</span> <span class="n">last_key</span><span class="p">();</span>            <span class="cm">/*Get the last pressed or released key*/</span>
                                     <span class="cm">/* use LV_KEY_ENTER for encoder press */</span>
  <span class="k">if</span><span class="p">(</span><span class="n">key_pressed</span><span class="p">())</span> <span class="n">data</span><span class="o">-&gt;</span><span class="n">state</span> <span class="o">=</span> <span class="n">LV_INDEV_STATE_PRESSED</span><span class="p">;</span>
  <span class="k">else</span> <span class="p">{</span>
      <span class="n">data</span><span class="o">-&gt;</span><span class="n">state</span> <span class="o">=</span> <span class="n">LV_INDEV_STATE_RELEASED</span><span class="p">;</span>
      <span class="cm">/* Optionally you can also use enc_diff, if you have encoder*/</span>
      <span class="n">data</span><span class="o">-&gt;</span><span class="n">enc_diff</span> <span class="o">=</span> <span class="n">enc_get_new_moves</span><span class="p">();</span>
  <span class="p">}</span>

  <span class="k">return</span> <span class="nb">false</span><span class="p">;</span> <span class="cm">/*No buffering now so no more data read*/</span>
<span class="p">}</span>
</pre></div>
</div>
</div>
</div>
<div class="section" id="button">
<h3>Button<a class="headerlink" href="#button" title="Permalink to this headline">¶</a></h3>
<p><em>Buttons</em> mean external &quot;hardware&quot; buttons next to the screen which are assigned to specific coordinates of the screen.
If a button is pressed it will simulate the pressing on the assigned coordinate. (Similarly to a touchpad)</p>
<p>To assign buttons to coordinates use <code class="docutils literal notranslate"><span class="pre">lv_indev_set_button_points(my_indev,</span> <span class="pre">points_array)</span></code>.<br /><code class="docutils literal notranslate"><span class="pre">points_array</span></code> should look like <code class="docutils literal notranslate"><span class="pre">const</span> <span class="pre">lv_point_t</span> <span class="pre">points_array[]</span> <span class="pre">=</span>&#160; <span class="pre">{</span> <span class="pre">{12,30},{60,90},</span> <span class="pre">...}</span></code></p>
<div class="admonition important">
<p class="admonition-title">Important</p>
<p>The points_array can't go out of scope. Either declare it as a global variable or as a static variable inside a function.</p>
</div>
<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="n">indev_drv</span><span class="p">.</span><span class="n">type</span> <span class="o">=</span> <span class="n">LV_INDEV_TYPE_BUTTON</span><span class="p">;</span>
<span class="n">indev_drv</span><span class="p">.</span><span class="n">read_cb</span> <span class="o">=</span> <span class="n">button_read</span><span class="p">;</span>

<span class="p">...</span>

<span class="kt">void</span> <span class="n">button_read</span><span class="p">(</span><span class="n">lv_indev_drv_t</span> <span class="o">*</span> <span class="n">drv</span><span class="p">,</span> <span class="n">lv_indev_data_t</span><span class="o">*</span><span class="n">data</span><span class="p">){</span>
    <span class="k">static</span> <span class="kt">uint32_t</span> <span class="n">last_btn</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>   <span class="cm">/*Store the last pressed button*/</span>
    <span class="kt">int</span> <span class="n">btn_pr</span> <span class="o">=</span> <span class="n">my_btn_read</span><span class="p">();</span>     <span class="cm">/*Get the ID (0,1,2...) of the pressed button*/</span>
    <span class="k">if</span><span class="p">(</span><span class="n">btn_pr</span> <span class="o">&gt;=</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span>               <span class="cm">/*Is there a button press? (E.g. -1 indicated no button was pressed)*/</span>
       <span class="n">last_btn</span> <span class="o">=</span> <span class="n">btn_pr</span><span class="p">;</span>           <span class="cm">/*Save the ID of the pressed button*/</span>
       <span class="n">data</span><span class="o">-&gt;</span><span class="n">state</span> <span class="o">=</span> <span class="n">LV_INDEV_STATE_PRESSED</span><span class="p">;</span>  <span class="cm">/*Set the pressed state*/</span>
    <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
       <span class="n">data</span><span class="o">-&gt;</span><span class="n">state</span> <span class="o">=</span> <span class="n">LV_INDEV_STATE_RELEASED</span><span class="p">;</span> <span class="cm">/*Set the released state*/</span>
    <span class="p">}</span>

    <span class="n">data</span><span class="o">-&gt;</span><span class="n">btn</span> <span class="o">=</span> <span class="n">last_btn</span><span class="p">;</span>            <span class="cm">/*Save the last button*/</span>
<span class="p">}</span>
</pre></div>
</div>
</div>
</div>
<div class="section" id="other-features">
<h2>Other features<a class="headerlink" href="#other-features" title="Permalink to this headline">¶</a></h2>
<div class="section" id="parameters">
<h3>Parameters<a class="headerlink" href="#parameters" title="Permalink to this headline">¶</a></h3>
<p>The default value of the following parameters can changed in <code class="docutils literal notranslate"><span class="pre">lv_indev_drv_t</span></code>:</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">scroll_limit</span></code> Number of pixels to slide before actually scrolling the object.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">scroll_throw</span></code>  Scroll throw (momentum) slow-down in [%]. Greater value means faster slow-down.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">long_press_time</span></code> Press time to send <code class="docutils literal notranslate"><span class="pre">LV_EVENT_LONG_PRESSED</span></code> (in milliseconds)</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">long_press_rep_time</span></code> Interval of sending <code class="docutils literal notranslate"><span class="pre">LV_EVENT_LONG_PRESSED_REPEAT</span></code> (in milliseconds)</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">read_timer</span></code> pointer to the <code class="docutils literal notranslate"><span class="pre">lv_timer</span></code> which reads the input device. Its parameters can be changed by <code class="docutils literal notranslate"><span class="pre">lv_timer_...()</span></code> functions. <code class="docutils literal notranslate"><span class="pre">LV_INDEV_DEF_READ_PERIOD</span></code> in <code class="docutils literal notranslate"><span class="pre">lv_conf.h</span></code> sets the default read period.</p></li>
</ul>
</div>
<div class="section" id="feedback">
<h3>Feedback<a class="headerlink" href="#feedback" title="Permalink to this headline">¶</a></h3>
<p>Besides <code class="docutils literal notranslate"><span class="pre">read_cb</span></code> a <code class="docutils literal notranslate"><span class="pre">feedback_cb</span></code> callback can be also specified in <code class="docutils literal notranslate"><span class="pre">lv_indev_drv_t</span></code>.
<code class="docutils literal notranslate"><span class="pre">feedback_cb</span></code> is called when any type of event is sent by the input devices (independently from its type). This allows generating feedback for the user, e.g. to play a sound on <code class="docutils literal notranslate"><span class="pre">LV_EVENT_CLICKED</span></code>.</p>
</div>
<div class="section" id="associating-with-a-display">
<h3>Associating with a display<a class="headerlink" href="#associating-with-a-display" title="Permalink to this headline">¶</a></h3>
<p>Every input device is associated with a display. By default, a new input device is added to the lastly created or the explicitly selected (using <code class="docutils literal notranslate"><span class="pre">lv_disp_set_default()</span></code>) display.
The associated display is stored and can be changed in <code class="docutils literal notranslate"><span class="pre">disp</span></code> field of the driver.</p>
</div>
<div class="section" id="buffered-reading">
<h3>Buffered reading<a class="headerlink" href="#buffered-reading" title="Permalink to this headline">¶</a></h3>
<p>By default LVGL calls <code class="docutils literal notranslate"><span class="pre">read_cb</span></code> periodically. This way there is a chance that some user gestures are missed.</p>
<p>To solve this you can write an event driven driver for your input device that buffers measured data. In <code class="docutils literal notranslate"><span class="pre">read_cb</span></code> you can set the buffered data instead of reading the input device.
You can set the <code class="docutils literal notranslate"><span class="pre">data-&gt;continue_reading</span></code> flag to tell that LVGL there is more data to read and it should call the <code class="docutils literal notranslate"><span class="pre">read_cb</span></code> again.</p>
</div>
</div>
<div class="section" id="further-reading">
<h2>Further reading<a class="headerlink" href="#further-reading" title="Permalink to this headline">¶</a></h2>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/lvgl/lvgl/blob/master/examples/porting/lv_port_indev_template.c">lv_port_indev_template.c</a> for a template for your own driver.</p></li>
<li><p><a class="reference internal" href="../overview/display.html"><span class="doc">INdev features</span></a> to learn more about higher level input device features.</p></li>
</ul>
</div>
<div class="section" id="api">
<h2>API<a class="headerlink" href="#api" title="Permalink to this headline">¶</a></h2>
<p>&#64;description Input Device HAL interface layer header file </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-typedefs">Typedefs</p>
<dl class="cpp type">
<dt class="sig sig-object cpp" id="_CPPv414lv_indev_drv_t">
<span id="_CPPv314lv_indev_drv_t"></span><span id="_CPPv214lv_indev_drv_t"></span><span id="lv_indev_drv_t"></span><span class="target" id="lv__hal__indev_8h_1aa608bb96b6aeff54d2f1c2280f4e970d"></span><span class="k"><span class="pre">typedef</span></span><span class="w"> </span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv415_lv_indev_drv_t" title="_lv_indev_drv_t"><span class="n"><span class="pre">_lv_indev_drv_t</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">lv_indev_drv_t</span></span></span><a class="headerlink" href="#_CPPv414lv_indev_drv_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Initialized by the user and registered by 'lv_indev_add()' </p>
</dd></dl>

<dl class="cpp type">
<dt class="sig sig-object cpp" id="_CPPv416_lv_indev_proc_t">
<span id="_CPPv316_lv_indev_proc_t"></span><span id="_CPPv216_lv_indev_proc_t"></span><span id="_lv_indev_proc_t"></span><span class="target" id="lv__hal__indev_8h_1a1f362694bc0ad34e5c8689ac7b35cc58"></span><span class="k"><span class="pre">typedef</span></span><span class="w"> </span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv416_lv_indev_proc_t" title="_lv_indev_proc_t"><span class="n"><span class="pre">_lv_indev_proc_t</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">_lv_indev_proc_t</span></span></span><a class="headerlink" href="#_CPPv416_lv_indev_proc_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Run time data of input devices Internally used by the library, you should not need to touch it. </p>
</dd></dl>

<dl class="cpp type">
<dt class="sig sig-object cpp" id="_CPPv410lv_indev_t">
<span id="_CPPv310lv_indev_t"></span><span id="_CPPv210lv_indev_t"></span><span id="lv_indev_t"></span><span class="target" id="lv__hal__indev_8h_1a7fc4c271f4ad53b4949e26b2999a1785"></span><span class="k"><span class="pre">typedef</span></span><span class="w"> </span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv411_lv_indev_t" title="_lv_indev_t"><span class="n"><span class="pre">_lv_indev_t</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">lv_indev_t</span></span></span><a class="headerlink" href="#_CPPv410lv_indev_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The main input device descriptor with driver, runtime data ('proc') and some additional information </p>
</dd></dl>

</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-enums">Enums</p>
<dl class="cpp enum">
<dt class="sig sig-object cpp" id="_CPPv415lv_indev_type_t">
<span id="_CPPv315lv_indev_type_t"></span><span id="_CPPv215lv_indev_type_t"></span><span class="target" id="lv__hal__indev_8h_1a11213c9864502e382d5f19b9e6b2de5b"></span><span class="k"><span class="pre">enum</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">lv_indev_type_t</span></span></span><a class="headerlink" href="#_CPPv415lv_indev_type_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Possible input device types </p>
<p><em>Values:</em></p>
<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4N15lv_indev_type_t18LV_INDEV_TYPE_NONEE">
<span id="_CPPv3N15lv_indev_type_t18LV_INDEV_TYPE_NONEE"></span><span id="_CPPv2N15lv_indev_type_t18LV_INDEV_TYPE_NONEE"></span><span class="target" id="lv__hal__indev_8h_1a11213c9864502e382d5f19b9e6b2de5ba5c2a83039d7a8073d24569b85b6048f4"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">LV_INDEV_TYPE_NONE</span></span></span><a class="headerlink" href="#_CPPv4N15lv_indev_type_t18LV_INDEV_TYPE_NONEE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Uninitialized state </p>
</dd></dl>

<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4N15lv_indev_type_t21LV_INDEV_TYPE_POINTERE">
<span id="_CPPv3N15lv_indev_type_t21LV_INDEV_TYPE_POINTERE"></span><span id="_CPPv2N15lv_indev_type_t21LV_INDEV_TYPE_POINTERE"></span><span class="target" id="lv__hal__indev_8h_1a11213c9864502e382d5f19b9e6b2de5ba266ddfccb1f31d538489eea5667ebebf"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">LV_INDEV_TYPE_POINTER</span></span></span><a class="headerlink" href="#_CPPv4N15lv_indev_type_t21LV_INDEV_TYPE_POINTERE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Touch pad, mouse, external button </p>
</dd></dl>

<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4N15lv_indev_type_t20LV_INDEV_TYPE_KEYPADE">
<span id="_CPPv3N15lv_indev_type_t20LV_INDEV_TYPE_KEYPADE"></span><span id="_CPPv2N15lv_indev_type_t20LV_INDEV_TYPE_KEYPADE"></span><span class="target" id="lv__hal__indev_8h_1a11213c9864502e382d5f19b9e6b2de5ba9f8299c12ea91ab8e7a6e783b9b0664d"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">LV_INDEV_TYPE_KEYPAD</span></span></span><a class="headerlink" href="#_CPPv4N15lv_indev_type_t20LV_INDEV_TYPE_KEYPADE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Keypad or keyboard </p>
</dd></dl>

<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4N15lv_indev_type_t20LV_INDEV_TYPE_BUTTONE">
<span id="_CPPv3N15lv_indev_type_t20LV_INDEV_TYPE_BUTTONE"></span><span id="_CPPv2N15lv_indev_type_t20LV_INDEV_TYPE_BUTTONE"></span><span class="target" id="lv__hal__indev_8h_1a11213c9864502e382d5f19b9e6b2de5baa9b43a6f629907e83436dd9cf7973f84"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">LV_INDEV_TYPE_BUTTON</span></span></span><a class="headerlink" href="#_CPPv4N15lv_indev_type_t20LV_INDEV_TYPE_BUTTONE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>External (hardware button) which is assigned to a specific point of the screen </p>
</dd></dl>

<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4N15lv_indev_type_t21LV_INDEV_TYPE_ENCODERE">
<span id="_CPPv3N15lv_indev_type_t21LV_INDEV_TYPE_ENCODERE"></span><span id="_CPPv2N15lv_indev_type_t21LV_INDEV_TYPE_ENCODERE"></span><span class="target" id="lv__hal__indev_8h_1a11213c9864502e382d5f19b9e6b2de5bac14b17fb683f428c1bb935748ce0d5aa"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">LV_INDEV_TYPE_ENCODER</span></span></span><a class="headerlink" href="#_CPPv4N15lv_indev_type_t21LV_INDEV_TYPE_ENCODERE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Encoder with only Left, Right turn and a Button </p>
</dd></dl>

</dd></dl>

<dl class="cpp enum">
<dt class="sig sig-object cpp" id="_CPPv416lv_indev_state_t">
<span id="_CPPv316lv_indev_state_t"></span><span id="_CPPv216lv_indev_state_t"></span><span class="target" id="lv__hal__indev_8h_1aacdf3efce400e71895f5efb42ee24956"></span><span class="k"><span class="pre">enum</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">lv_indev_state_t</span></span></span><a class="headerlink" href="#_CPPv416lv_indev_state_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>States for input devices </p>
<p><em>Values:</em></p>
<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4N16lv_indev_state_t23LV_INDEV_STATE_RELEASEDE">
<span id="_CPPv3N16lv_indev_state_t23LV_INDEV_STATE_RELEASEDE"></span><span id="_CPPv2N16lv_indev_state_t23LV_INDEV_STATE_RELEASEDE"></span><span class="target" id="lv__hal__indev_8h_1aacdf3efce400e71895f5efb42ee24956aa17473382979b77cb5f5388ff3e11b2e"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">LV_INDEV_STATE_RELEASED</span></span></span><a class="headerlink" href="#_CPPv4N16lv_indev_state_t23LV_INDEV_STATE_RELEASEDE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4N16lv_indev_state_t22LV_INDEV_STATE_PRESSEDE">
<span id="_CPPv3N16lv_indev_state_t22LV_INDEV_STATE_PRESSEDE"></span><span id="_CPPv2N16lv_indev_state_t22LV_INDEV_STATE_PRESSEDE"></span><span class="target" id="lv__hal__indev_8h_1aacdf3efce400e71895f5efb42ee24956aae8cba42264e264514d9789425c14d39"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">LV_INDEV_STATE_PRESSED</span></span></span><a class="headerlink" href="#_CPPv4N16lv_indev_state_t22LV_INDEV_STATE_PRESSEDE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

</dd></dl>

</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-functions">Functions</p>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv417lv_indev_drv_initP15_lv_indev_drv_t">
<span id="_CPPv317lv_indev_drv_initP15_lv_indev_drv_t"></span><span id="_CPPv217lv_indev_drv_initP15_lv_indev_drv_t"></span><span id="lv_indev_drv_init___lv_indev_drv_tP"></span><span class="target" id="lv__hal__indev_8h_1a84785b93e8b9e127d3bb0e742f4f2fc5"></span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">lv_indev_drv_init</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv415_lv_indev_drv_t" title="_lv_indev_drv_t"><span class="n"><span class="pre">_lv_indev_drv_t</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">driver</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv417lv_indev_drv_initP15_lv_indev_drv_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Initialize an input device driver with default values. It is used to surly have known values in the fields ant not memory junk. After it you can set the fields. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>driver</strong> -- pointer to driver variable to initialize </p>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv421lv_indev_drv_registerP15_lv_indev_drv_t">
<span id="_CPPv321lv_indev_drv_registerP15_lv_indev_drv_t"></span><span id="_CPPv221lv_indev_drv_registerP15_lv_indev_drv_t"></span><span id="lv_indev_drv_register___lv_indev_drv_tP"></span><span class="target" id="lv__hal__indev_8h_1a44232c7c01e49c5a76a6cf7d76b88ca4"></span><a class="reference internal" href="#_CPPv410lv_indev_t" title="lv_indev_t"><span class="n"><span class="pre">lv_indev_t</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">lv_indev_drv_register</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv415_lv_indev_drv_t" title="_lv_indev_drv_t"><span class="n"><span class="pre">_lv_indev_drv_t</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">driver</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv421lv_indev_drv_registerP15_lv_indev_drv_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Register an initialized input device driver. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>driver</strong> -- pointer to an initialized 'lv_indev_drv_t' variable (can be local variable) </p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>pointer to the new input device or NULL on error </p>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv419lv_indev_drv_updateP10lv_indev_tP15_lv_indev_drv_t">
<span id="_CPPv319lv_indev_drv_updateP10lv_indev_tP15_lv_indev_drv_t"></span><span id="_CPPv219lv_indev_drv_updateP10lv_indev_tP15_lv_indev_drv_t"></span><span id="lv_indev_drv_update__lv_indev_tP._lv_indev_drv_tP"></span><span class="target" id="lv__hal__indev_8h_1a4e3a5f1579c8114a1435785c22b43de4"></span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">lv_indev_drv_update</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv410lv_indev_t" title="lv_indev_t"><span class="n"><span class="pre">lv_indev_t</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">indev</span></span>, <span class="k"><span class="pre">struct</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv415_lv_indev_drv_t" title="_lv_indev_drv_t"><span class="n"><span class="pre">_lv_indev_drv_t</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">new_drv</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv419lv_indev_drv_updateP10lv_indev_tP15_lv_indev_drv_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Update the driver in run time. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>indev</strong> -- pointer to a input device. (return value of <code class="docutils literal notranslate"><span class="pre">lv_indev_drv_register</span></code>) </p></li>
<li><p><strong>new_drv</strong> -- pointer to the new driver </p></li>
</ul>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv417lv_indev_get_nextP10lv_indev_t">
<span id="_CPPv317lv_indev_get_nextP10lv_indev_t"></span><span id="_CPPv217lv_indev_get_nextP10lv_indev_t"></span><span id="lv_indev_get_next__lv_indev_tP"></span><span class="target" id="lv__hal__indev_8h_1adb9ab2d384afe15273206e6565ca6442"></span><a class="reference internal" href="#_CPPv410lv_indev_t" title="lv_indev_t"><span class="n"><span class="pre">lv_indev_t</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">lv_indev_get_next</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv410lv_indev_t" title="lv_indev_t"><span class="n"><span class="pre">lv_indev_t</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">indev</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv417lv_indev_get_nextP10lv_indev_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Get the next input device. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>indev</strong> -- pointer to the current input device. NULL to initialize. </p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>the next input devise or NULL if no more. Give the first input device when the parameter is NULL </p>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv414_lv_indev_readP10lv_indev_tP15lv_indev_data_t">
<span id="_CPPv314_lv_indev_readP10lv_indev_tP15lv_indev_data_t"></span><span id="_CPPv214_lv_indev_readP10lv_indev_tP15lv_indev_data_t"></span><span id="_lv_indev_read__lv_indev_tP.lv_indev_data_tP"></span><span class="target" id="lv__hal__indev_8h_1a9ca30c7936b17a3dc9bb3d8fb205585a"></span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">_lv_indev_read</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv410lv_indev_t" title="lv_indev_t"><span class="n"><span class="pre">lv_indev_t</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">indev</span></span>, <a class="reference internal" href="#_CPPv415lv_indev_data_t" title="lv_indev_data_t"><span class="n"><span class="pre">lv_indev_data_t</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">data</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv414_lv_indev_readP10lv_indev_tP15lv_indev_data_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Read data from an input device. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>indev</strong> -- pointer to an input device </p></li>
<li><p><strong>data</strong> -- input device will write its data here </p></li>
</ul>
</dd>
</dl>
</dd></dl>

</div>
<dl class="cpp struct">
<dt class="sig sig-object cpp" id="_CPPv415lv_indev_data_t">
<span id="_CPPv315lv_indev_data_t"></span><span id="_CPPv215lv_indev_data_t"></span><span id="lv_indev_data_t"></span><span class="target" id="structlv__indev__data__t"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">lv_indev_data_t</span></span></span><a class="headerlink" href="#_CPPv415lv_indev_data_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;lv_hal_indev.h&gt;</em><p>Data structure passed to an input driver to fill </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-members">Public Members</p>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N15lv_indev_data_t5pointE">
<span id="_CPPv3N15lv_indev_data_t5pointE"></span><span id="_CPPv2N15lv_indev_data_t5pointE"></span><span id="lv_indev_data_t::point__lv_point_t"></span><span class="target" id="structlv__indev__data__t_1afaecb3fba20bd3d6f798dea8b207f257"></span><span class="n"><span class="pre">lv_point_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">point</span></span></span><a class="headerlink" href="#_CPPv4N15lv_indev_data_t5pointE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>For LV_INDEV_TYPE_POINTER the currently pressed point </p>
</dd></dl>

<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N15lv_indev_data_t3keyE">
<span id="_CPPv3N15lv_indev_data_t3keyE"></span><span id="_CPPv2N15lv_indev_data_t3keyE"></span><span id="lv_indev_data_t::key__uint32_t"></span><span class="target" id="structlv__indev__data__t_1a5f93f90c6ffe0f7db54a0fc43a1cef9c"></span><span class="n"><span class="pre">uint32_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">key</span></span></span><a class="headerlink" href="#_CPPv4N15lv_indev_data_t3keyE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>For LV_INDEV_TYPE_KEYPAD the currently pressed key </p>
</dd></dl>

<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N15lv_indev_data_t6btn_idE">
<span id="_CPPv3N15lv_indev_data_t6btn_idE"></span><span id="_CPPv2N15lv_indev_data_t6btn_idE"></span><span id="lv_indev_data_t::btn_id__uint32_t"></span><span class="target" id="structlv__indev__data__t_1a5c9452fed20a2e6f91bfff86d0bcc6d6"></span><span class="n"><span class="pre">uint32_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">btn_id</span></span></span><a class="headerlink" href="#_CPPv4N15lv_indev_data_t6btn_idE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>For LV_INDEV_TYPE_BUTTON the currently pressed button </p>
</dd></dl>

<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N15lv_indev_data_t8enc_diffE">
<span id="_CPPv3N15lv_indev_data_t8enc_diffE"></span><span id="_CPPv2N15lv_indev_data_t8enc_diffE"></span><span id="lv_indev_data_t::enc_diff__int16_t"></span><span class="target" id="structlv__indev__data__t_1a13b86f5548c334dc240f85a74c96195e"></span><span class="n"><span class="pre">int16_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">enc_diff</span></span></span><a class="headerlink" href="#_CPPv4N15lv_indev_data_t8enc_diffE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>For LV_INDEV_TYPE_ENCODER number of steps since the previous read </p>
</dd></dl>

<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N15lv_indev_data_t5stateE">
<span id="_CPPv3N15lv_indev_data_t5stateE"></span><span id="_CPPv2N15lv_indev_data_t5stateE"></span><span id="lv_indev_data_t::state__lv_indev_state_t"></span><span class="target" id="structlv__indev__data__t_1aed0de26ed88301e92bc3d95020a9893b"></span><a class="reference internal" href="#_CPPv416lv_indev_state_t" title="lv_indev_state_t"><span class="n"><span class="pre">lv_indev_state_t</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">state</span></span></span><a class="headerlink" href="#_CPPv4N15lv_indev_data_t5stateE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>LV_INDEV_STATE_REL or LV_INDEV_STATE_PR </p>
</dd></dl>

<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N15lv_indev_data_t16continue_readingE">
<span id="_CPPv3N15lv_indev_data_t16continue_readingE"></span><span id="_CPPv2N15lv_indev_data_t16continue_readingE"></span><span id="lv_indev_data_t::continue_reading__b"></span><span class="target" id="structlv__indev__data__t_1aa8048e6188372c0050640b1eb341f093"></span><span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">continue_reading</span></span></span><a class="headerlink" href="#_CPPv4N15lv_indev_data_t16continue_readingE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Call the read callback until it's set to true </p>
</dd></dl>

</div>
</dd></dl>

<dl class="cpp struct">
<dt class="sig sig-object cpp" id="_CPPv415_lv_indev_drv_t">
<span id="_CPPv315_lv_indev_drv_t"></span><span id="_CPPv215_lv_indev_drv_t"></span><span id="_lv_indev_drv_t"></span><span class="target" id="struct__lv__indev__drv__t"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">_lv_indev_drv_t</span></span></span><a class="headerlink" href="#_CPPv415_lv_indev_drv_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;lv_hal_indev.h&gt;</em><p>Initialized by the user and registered by 'lv_indev_add()' </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-members">Public Members</p>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N15_lv_indev_drv_t4typeE">
<span id="_CPPv3N15_lv_indev_drv_t4typeE"></span><span id="_CPPv2N15_lv_indev_drv_t4typeE"></span><span id="_lv_indev_drv_t::type__lv_indev_type_t"></span><span class="target" id="struct__lv__indev__drv__t_1afcf65997bfa34ba6277814d214b5ef55"></span><a class="reference internal" href="#_CPPv415lv_indev_type_t" title="lv_indev_type_t"><span class="n"><span class="pre">lv_indev_type_t</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">type</span></span></span><a class="headerlink" href="#_CPPv4N15_lv_indev_drv_t4typeE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>&lt; Input device type Function pointer to read input device data. </p>
</dd></dl>

<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N15_lv_indev_drv_t7read_cbE">
<span id="_CPPv3N15_lv_indev_drv_t7read_cbE"></span><span id="_CPPv2N15_lv_indev_drv_t7read_cbE"></span><span class="target" id="struct__lv__indev__drv__t_1ae3f9071086d4722198c38c40b6c15f57"></span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="p"><span class="pre">(</span></span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">read_cb</span></span></span><span class="p"><span class="pre">)</span></span><span class="p"><span class="pre">(</span></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv415_lv_indev_drv_t" title="_lv_indev_drv_t"><span class="n"><span class="pre">_lv_indev_drv_t</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">indev_drv</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv415lv_indev_data_t" title="lv_indev_data_t"><span class="n"><span class="pre">lv_indev_data_t</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">data</span></span><span class="p"><span class="pre">)</span></span><a class="headerlink" href="#_CPPv4N15_lv_indev_drv_t7read_cbE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N15_lv_indev_drv_t11feedback_cbE">
<span id="_CPPv3N15_lv_indev_drv_t11feedback_cbE"></span><span id="_CPPv2N15_lv_indev_drv_t11feedback_cbE"></span><span class="target" id="struct__lv__indev__drv__t_1a2761f98ff5415e7522b7a389f3b89e70"></span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="p"><span class="pre">(</span></span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">feedback_cb</span></span></span><span class="p"><span class="pre">)</span></span><span class="p"><span class="pre">(</span></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv415_lv_indev_drv_t" title="_lv_indev_drv_t"><span class="n"><span class="pre">_lv_indev_drv_t</span></span></a><span class="p"><span class="pre">*</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="n"><span class="pre">uint8_t</span></span><span class="p"><span class="pre">)</span></span><a class="headerlink" href="#_CPPv4N15_lv_indev_drv_t11feedback_cbE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Called when an action happened on the input device. The second parameter is the event from <code class="docutils literal notranslate"><span class="pre">lv_event_t</span></code> </p>
</dd></dl>

<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N15_lv_indev_drv_t9user_dataE">
<span id="_CPPv3N15_lv_indev_drv_t9user_dataE"></span><span id="_CPPv2N15_lv_indev_drv_t9user_dataE"></span><span id="_lv_indev_drv_t::user_data__voidP"></span><span class="target" id="struct__lv__indev__drv__t_1a2fc7943377dc5518efad848ae659c5a9"></span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">user_data</span></span></span><a class="headerlink" href="#_CPPv4N15_lv_indev_drv_t9user_dataE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N15_lv_indev_drv_t4dispE">
<span id="_CPPv3N15_lv_indev_drv_t4dispE"></span><span id="_CPPv2N15_lv_indev_drv_t4dispE"></span><span id="_lv_indev_drv_t::disp___lv_disp_tP"></span><span class="target" id="struct__lv__indev__drv__t_1a4d308304de2658bd31a9c5826cd16480"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><a class="reference internal" href="display.html#_CPPv410_lv_disp_t" title="_lv_disp_t"><span class="n"><span class="pre">_lv_disp_t</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">disp</span></span></span><a class="headerlink" href="#_CPPv4N15_lv_indev_drv_t4dispE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>&lt; Pointer to the assigned display Timer to periodically read the input device </p>
</dd></dl>

<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N15_lv_indev_drv_t10read_timerE">
<span id="_CPPv3N15_lv_indev_drv_t10read_timerE"></span><span id="_CPPv2N15_lv_indev_drv_t10read_timerE"></span><span id="_lv_indev_drv_t::read_timer__lv_timer_tP"></span><span class="target" id="struct__lv__indev__drv__t_1a2bec6f260af2d2568d85dc73d5874bdf"></span><a class="reference internal" href="../overview/timer.html#_CPPv410lv_timer_t" title="lv_timer_t"><span class="n"><span class="pre">lv_timer_t</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">read_timer</span></span></span><a class="headerlink" href="#_CPPv4N15_lv_indev_drv_t10read_timerE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Number of pixels to slide before actually drag the object </p>
</dd></dl>

<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N15_lv_indev_drv_t12scroll_limitE">
<span id="_CPPv3N15_lv_indev_drv_t12scroll_limitE"></span><span id="_CPPv2N15_lv_indev_drv_t12scroll_limitE"></span><span id="_lv_indev_drv_t::scroll_limit__uint8_t"></span><span class="target" id="struct__lv__indev__drv__t_1a54861fb3efdb2e9c8037ec5dbdd5c7a0"></span><span class="n"><span class="pre">uint8_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">scroll_limit</span></span></span><a class="headerlink" href="#_CPPv4N15_lv_indev_drv_t12scroll_limitE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Drag throw slow-down in [%]. Greater value means faster slow-down </p>
</dd></dl>

<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N15_lv_indev_drv_t12scroll_throwE">
<span id="_CPPv3N15_lv_indev_drv_t12scroll_throwE"></span><span id="_CPPv2N15_lv_indev_drv_t12scroll_throwE"></span><span id="_lv_indev_drv_t::scroll_throw__uint8_t"></span><span class="target" id="struct__lv__indev__drv__t_1a23226c4cd9c78a7e8c6672b810eb45d8"></span><span class="n"><span class="pre">uint8_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">scroll_throw</span></span></span><a class="headerlink" href="#_CPPv4N15_lv_indev_drv_t12scroll_throwE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>At least this difference should between two points to evaluate as gesture </p>
</dd></dl>

<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N15_lv_indev_drv_t20gesture_min_velocityE">
<span id="_CPPv3N15_lv_indev_drv_t20gesture_min_velocityE"></span><span id="_CPPv2N15_lv_indev_drv_t20gesture_min_velocityE"></span><span id="_lv_indev_drv_t::gesture_min_velocity__uint8_t"></span><span class="target" id="struct__lv__indev__drv__t_1a881f1834d3f8666fb3d86c37734f0e3a"></span><span class="n"><span class="pre">uint8_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">gesture_min_velocity</span></span></span><a class="headerlink" href="#_CPPv4N15_lv_indev_drv_t20gesture_min_velocityE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>At least this difference should be to send a gesture </p>
</dd></dl>

<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N15_lv_indev_drv_t13gesture_limitE">
<span id="_CPPv3N15_lv_indev_drv_t13gesture_limitE"></span><span id="_CPPv2N15_lv_indev_drv_t13gesture_limitE"></span><span id="_lv_indev_drv_t::gesture_limit__uint8_t"></span><span class="target" id="struct__lv__indev__drv__t_1a2e83d20954f4d4056e2f21b67893ac7b"></span><span class="n"><span class="pre">uint8_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">gesture_limit</span></span></span><a class="headerlink" href="#_CPPv4N15_lv_indev_drv_t13gesture_limitE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Long press time in milliseconds </p>
</dd></dl>

<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N15_lv_indev_drv_t15long_press_timeE">
<span id="_CPPv3N15_lv_indev_drv_t15long_press_timeE"></span><span id="_CPPv2N15_lv_indev_drv_t15long_press_timeE"></span><span id="_lv_indev_drv_t::long_press_time__uint16_t"></span><span class="target" id="struct__lv__indev__drv__t_1aed13a62b3f85ab444db64e8f6e9fa215"></span><span class="n"><span class="pre">uint16_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">long_press_time</span></span></span><a class="headerlink" href="#_CPPv4N15_lv_indev_drv_t15long_press_timeE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Repeated trigger period in long press [ms] </p>
</dd></dl>

<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N15_lv_indev_drv_t22long_press_repeat_timeE">
<span id="_CPPv3N15_lv_indev_drv_t22long_press_repeat_timeE"></span><span id="_CPPv2N15_lv_indev_drv_t22long_press_repeat_timeE"></span><span id="_lv_indev_drv_t::long_press_repeat_time__uint16_t"></span><span class="target" id="struct__lv__indev__drv__t_1a29c124547dcfa94a1f119ff90bbf416b"></span><span class="n"><span class="pre">uint16_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">long_press_repeat_time</span></span></span><a class="headerlink" href="#_CPPv4N15_lv_indev_drv_t22long_press_repeat_timeE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

</div>
</dd></dl>

<dl class="cpp struct">
<dt class="sig sig-object cpp">
<span class="target" id="struct__lv__indev__proc__t"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">_lv_indev_proc_t</span></span></span><br /></dt>
<dd><em>#include &lt;lv_hal_indev.h&gt;</em><p>Run time data of input devices Internally used by the library, you should not need to touch it. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-members">Public Members</p>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N16_lv_indev_proc_t5stateE">
<span id="_CPPv3N16_lv_indev_proc_t5stateE"></span><span id="_CPPv2N16_lv_indev_proc_t5stateE"></span><span id="_lv_indev_proc_t::state__lv_indev_state_t"></span><span class="target" id="struct__lv__indev__proc__t_1a993ced14d531f55381346cebf8a978d8"></span><a class="reference internal" href="#_CPPv416lv_indev_state_t" title="lv_indev_state_t"><span class="n"><span class="pre">lv_indev_state_t</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">state</span></span></span><a class="headerlink" href="#_CPPv4N16_lv_indev_proc_t5stateE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Current state of the input device. </p>
</dd></dl>

<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N16_lv_indev_proc_t12long_pr_sentE">
<span id="_CPPv3N16_lv_indev_proc_t12long_pr_sentE"></span><span id="_CPPv2N16_lv_indev_proc_t12long_pr_sentE"></span><span id="_lv_indev_proc_t::long_pr_sent__uint8_t"></span><span class="target" id="struct__lv__indev__proc__t_1a69c492deb716c6f9e9ce7bd1e691c19d"></span><span class="n"><span class="pre">uint8_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">long_pr_sent</span></span></span><a class="headerlink" href="#_CPPv4N16_lv_indev_proc_t12long_pr_sentE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N16_lv_indev_proc_t11reset_queryE">
<span id="_CPPv3N16_lv_indev_proc_t11reset_queryE"></span><span id="_CPPv2N16_lv_indev_proc_t11reset_queryE"></span><span id="_lv_indev_proc_t::reset_query__uint8_t"></span><span class="target" id="struct__lv__indev__proc__t_1ab7a4b61acd0befd72fd772d2e51704f5"></span><span class="n"><span class="pre">uint8_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">reset_query</span></span></span><a class="headerlink" href="#_CPPv4N16_lv_indev_proc_t11reset_queryE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N16_lv_indev_proc_t8disabledE">
<span id="_CPPv3N16_lv_indev_proc_t8disabledE"></span><span id="_CPPv2N16_lv_indev_proc_t8disabledE"></span><span id="_lv_indev_proc_t::disabled__uint8_t"></span><span class="target" id="struct__lv__indev__proc__t_1af72a80aed5ad581416e5c33dfe3e93f8"></span><span class="n"><span class="pre">uint8_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">disabled</span></span></span><a class="headerlink" href="#_CPPv4N16_lv_indev_proc_t8disabledE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N16_lv_indev_proc_t18wait_until_releaseE">
<span id="_CPPv3N16_lv_indev_proc_t18wait_until_releaseE"></span><span id="_CPPv2N16_lv_indev_proc_t18wait_until_releaseE"></span><span id="_lv_indev_proc_t::wait_until_release__uint8_t"></span><span class="target" id="struct__lv__indev__proc__t_1affc96e7c25e11f103573f7d9e5fd102f"></span><span class="n"><span class="pre">uint8_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">wait_until_release</span></span></span><a class="headerlink" href="#_CPPv4N16_lv_indev_proc_t18wait_until_releaseE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N16_lv_indev_proc_t9act_pointE">
<span id="_CPPv3N16_lv_indev_proc_t9act_pointE"></span><span id="_CPPv2N16_lv_indev_proc_t9act_pointE"></span><span id="_lv_indev_proc_t::act_point__lv_point_t"></span><span class="target" id="struct__lv__indev__proc__t_1a07c31da6ce2d8bf13495979a4cfde167"></span><span class="n"><span class="pre">lv_point_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">act_point</span></span></span><a class="headerlink" href="#_CPPv4N16_lv_indev_proc_t9act_pointE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Current point of input device. </p>
</dd></dl>

<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N16_lv_indev_proc_t10last_pointE">
<span id="_CPPv3N16_lv_indev_proc_t10last_pointE"></span><span id="_CPPv2N16_lv_indev_proc_t10last_pointE"></span><span id="_lv_indev_proc_t::last_point__lv_point_t"></span><span class="target" id="struct__lv__indev__proc__t_1a1cdaaba80366c5e69643ce39e9ccfe54"></span><span class="n"><span class="pre">lv_point_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">last_point</span></span></span><a class="headerlink" href="#_CPPv4N16_lv_indev_proc_t10last_pointE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Last point of input device. </p>
</dd></dl>

<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N16_lv_indev_proc_t14last_raw_pointE">
<span id="_CPPv3N16_lv_indev_proc_t14last_raw_pointE"></span><span id="_CPPv2N16_lv_indev_proc_t14last_raw_pointE"></span><span id="_lv_indev_proc_t::last_raw_point__lv_point_t"></span><span class="target" id="struct__lv__indev__proc__t_1a5ef2276c058ae14671e0b2c95fcd0efd"></span><span class="n"><span class="pre">lv_point_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">last_raw_point</span></span></span><a class="headerlink" href="#_CPPv4N16_lv_indev_proc_t14last_raw_pointE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Last point read from read_cb. </p>
</dd></dl>

<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N16_lv_indev_proc_t4vectE">
<span id="_CPPv3N16_lv_indev_proc_t4vectE"></span><span id="_CPPv2N16_lv_indev_proc_t4vectE"></span><span id="_lv_indev_proc_t::vect__lv_point_t"></span><span class="target" id="struct__lv__indev__proc__t_1a311ca773c25e7719b27ec09a36bf17e1"></span><span class="n"><span class="pre">lv_point_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">vect</span></span></span><a class="headerlink" href="#_CPPv4N16_lv_indev_proc_t4vectE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Difference between <code class="docutils literal notranslate"><span class="pre">act_point</span></code> and <code class="docutils literal notranslate"><span class="pre">last_point</span></code>. </p>
</dd></dl>

<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N16_lv_indev_proc_t10scroll_sumE">
<span id="_CPPv3N16_lv_indev_proc_t10scroll_sumE"></span><span id="_CPPv2N16_lv_indev_proc_t10scroll_sumE"></span><span id="_lv_indev_proc_t::scroll_sum__lv_point_t"></span><span class="target" id="struct__lv__indev__proc__t_1a6dcf864ff00cce45de9ad7da54c25db8"></span><span class="n"><span class="pre">lv_point_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">scroll_sum</span></span></span><a class="headerlink" href="#_CPPv4N16_lv_indev_proc_t10scroll_sumE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N16_lv_indev_proc_t17scroll_throw_vectE">
<span id="_CPPv3N16_lv_indev_proc_t17scroll_throw_vectE"></span><span id="_CPPv2N16_lv_indev_proc_t17scroll_throw_vectE"></span><span id="_lv_indev_proc_t::scroll_throw_vect__lv_point_t"></span><span class="target" id="struct__lv__indev__proc__t_1a9bb0b055f6a7b857c3d0f77bb652cb97"></span><span class="n"><span class="pre">lv_point_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">scroll_throw_vect</span></span></span><a class="headerlink" href="#_CPPv4N16_lv_indev_proc_t17scroll_throw_vectE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N16_lv_indev_proc_t21scroll_throw_vect_oriE">
<span id="_CPPv3N16_lv_indev_proc_t21scroll_throw_vect_oriE"></span><span id="_CPPv2N16_lv_indev_proc_t21scroll_throw_vect_oriE"></span><span id="_lv_indev_proc_t::scroll_throw_vect_ori__lv_point_t"></span><span class="target" id="struct__lv__indev__proc__t_1afded21d1887b4ca6c8f14669846c2152"></span><span class="n"><span class="pre">lv_point_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">scroll_throw_vect_ori</span></span></span><a class="headerlink" href="#_CPPv4N16_lv_indev_proc_t21scroll_throw_vect_oriE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N16_lv_indev_proc_t7act_objE">
<span id="_CPPv3N16_lv_indev_proc_t7act_objE"></span><span id="_CPPv2N16_lv_indev_proc_t7act_objE"></span><span id="_lv_indev_proc_t::act_obj___lv_obj_tP"></span><span class="target" id="struct__lv__indev__proc__t_1a418af1d0a3452e6c97d22f6a690c2927"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><a class="reference internal" href="../widgets/obj.html#_CPPv49_lv_obj_t" title="_lv_obj_t"><span class="n"><span class="pre">_lv_obj_t</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">act_obj</span></span></span><a class="headerlink" href="#_CPPv4N16_lv_indev_proc_t7act_objE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N16_lv_indev_proc_t8last_objE">
<span id="_CPPv3N16_lv_indev_proc_t8last_objE"></span><span id="_CPPv2N16_lv_indev_proc_t8last_objE"></span><span id="_lv_indev_proc_t::last_obj___lv_obj_tP"></span><span class="target" id="struct__lv__indev__proc__t_1a31f25629da14f973a050f3723b47bb53"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><a class="reference internal" href="../widgets/obj.html#_CPPv49_lv_obj_t" title="_lv_obj_t"><span class="n"><span class="pre">_lv_obj_t</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">last_obj</span></span></span><a class="headerlink" href="#_CPPv4N16_lv_indev_proc_t8last_objE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N16_lv_indev_proc_t10scroll_objE">
<span id="_CPPv3N16_lv_indev_proc_t10scroll_objE"></span><span id="_CPPv2N16_lv_indev_proc_t10scroll_objE"></span><span id="_lv_indev_proc_t::scroll_obj___lv_obj_tP"></span><span class="target" id="struct__lv__indev__proc__t_1a1a831877520ad18e9c57bb3f2563bd39"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><a class="reference internal" href="../widgets/obj.html#_CPPv49_lv_obj_t" title="_lv_obj_t"><span class="n"><span class="pre">_lv_obj_t</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">scroll_obj</span></span></span><a class="headerlink" href="#_CPPv4N16_lv_indev_proc_t10scroll_objE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N16_lv_indev_proc_t12last_pressedE">
<span id="_CPPv3N16_lv_indev_proc_t12last_pressedE"></span><span id="_CPPv2N16_lv_indev_proc_t12last_pressedE"></span><span id="_lv_indev_proc_t::last_pressed___lv_obj_tP"></span><span class="target" id="struct__lv__indev__proc__t_1a989c1d45df566aef0219fbc90f2ab628"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><a class="reference internal" href="../widgets/obj.html#_CPPv49_lv_obj_t" title="_lv_obj_t"><span class="n"><span class="pre">_lv_obj_t</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">last_pressed</span></span></span><a class="headerlink" href="#_CPPv4N16_lv_indev_proc_t12last_pressedE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N16_lv_indev_proc_t11scroll_areaE">
<span id="_CPPv3N16_lv_indev_proc_t11scroll_areaE"></span><span id="_CPPv2N16_lv_indev_proc_t11scroll_areaE"></span><span id="_lv_indev_proc_t::scroll_area__lv_area_t"></span><span class="target" id="struct__lv__indev__proc__t_1a3ed7b15fc351350fc9cd3044d36cca11"></span><span class="n"><span class="pre">lv_area_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">scroll_area</span></span></span><a class="headerlink" href="#_CPPv4N16_lv_indev_proc_t11scroll_areaE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N16_lv_indev_proc_t11gesture_sumE">
<span id="_CPPv3N16_lv_indev_proc_t11gesture_sumE"></span><span id="_CPPv2N16_lv_indev_proc_t11gesture_sumE"></span><span id="_lv_indev_proc_t::gesture_sum__lv_point_t"></span><span class="target" id="struct__lv__indev__proc__t_1ac1a0645fa105c22698920de514f3fb9b"></span><span class="n"><span class="pre">lv_point_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">gesture_sum</span></span></span><a class="headerlink" href="#_CPPv4N16_lv_indev_proc_t11gesture_sumE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N16_lv_indev_proc_t10scroll_dirE">
<span id="_CPPv3N16_lv_indev_proc_t10scroll_dirE"></span><span id="_CPPv2N16_lv_indev_proc_t10scroll_dirE"></span><span id="_lv_indev_proc_t::scroll_dir__lv_dir_t"></span><span class="target" id="struct__lv__indev__proc__t_1acbfc138ec3c3b93a38aae9ea5d48cb23"></span><span class="n"><span class="pre">lv_dir_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">scroll_dir</span></span></span><a class="headerlink" href="#_CPPv4N16_lv_indev_proc_t10scroll_dirE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N16_lv_indev_proc_t11gesture_dirE">
<span id="_CPPv3N16_lv_indev_proc_t11gesture_dirE"></span><span id="_CPPv2N16_lv_indev_proc_t11gesture_dirE"></span><span id="_lv_indev_proc_t::gesture_dir__lv_dir_t"></span><span class="target" id="struct__lv__indev__proc__t_1a9511db2f0bed58a7ceca5b338154dfd5"></span><span class="n"><span class="pre">lv_dir_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">gesture_dir</span></span></span><a class="headerlink" href="#_CPPv4N16_lv_indev_proc_t11gesture_dirE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N16_lv_indev_proc_t12gesture_sentE">
<span id="_CPPv3N16_lv_indev_proc_t12gesture_sentE"></span><span id="_CPPv2N16_lv_indev_proc_t12gesture_sentE"></span><span id="_lv_indev_proc_t::gesture_sent__uint8_t"></span><span class="target" id="struct__lv__indev__proc__t_1a3c3fc31c7153e86968d25218c36aa2d9"></span><span class="n"><span class="pre">uint8_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">gesture_sent</span></span></span><a class="headerlink" href="#_CPPv4N16_lv_indev_proc_t12gesture_sentE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N16_lv_indev_proc_t7pointerE">
<span id="_CPPv3N16_lv_indev_proc_t7pointerE"></span><span id="_CPPv2N16_lv_indev_proc_t7pointerE"></span><span class="target" id="struct__lv__indev__proc__t_1a76586d621fe315af907058056289d09d"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv416_lv_indev_proc_t" title="_lv_indev_proc_t"><span class="n"><span class="pre">_lv_indev_proc_t</span></span></a><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">[anonymous]</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">[anonymous]</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">pointer</span></span></span><a class="headerlink" href="#_CPPv4N16_lv_indev_proc_t7pointerE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N16_lv_indev_proc_t10last_stateE">
<span id="_CPPv3N16_lv_indev_proc_t10last_stateE"></span><span id="_CPPv2N16_lv_indev_proc_t10last_stateE"></span><span id="_lv_indev_proc_t::last_state__lv_indev_state_t"></span><span class="target" id="struct__lv__indev__proc__t_1a85c684f0eccad01a4f7cfe4ab4ebab89"></span><a class="reference internal" href="#_CPPv416lv_indev_state_t" title="lv_indev_state_t"><span class="n"><span class="pre">lv_indev_state_t</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">last_state</span></span></span><a class="headerlink" href="#_CPPv4N16_lv_indev_proc_t10last_stateE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N16_lv_indev_proc_t8last_keyE">
<span id="_CPPv3N16_lv_indev_proc_t8last_keyE"></span><span id="_CPPv2N16_lv_indev_proc_t8last_keyE"></span><span id="_lv_indev_proc_t::last_key__uint32_t"></span><span class="target" id="struct__lv__indev__proc__t_1af5b18f4a595a9a1b74a7665b5e55f42b"></span><span class="n"><span class="pre">uint32_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">last_key</span></span></span><a class="headerlink" href="#_CPPv4N16_lv_indev_proc_t8last_keyE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N16_lv_indev_proc_t6keypadE">
<span id="_CPPv3N16_lv_indev_proc_t6keypadE"></span><span id="_CPPv2N16_lv_indev_proc_t6keypadE"></span><span class="target" id="struct__lv__indev__proc__t_1ade59fb3efa940bda63ae74025bdc861e"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv416_lv_indev_proc_t" title="_lv_indev_proc_t"><span class="n"><span class="pre">_lv_indev_proc_t</span></span></a><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">[anonymous]</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">[anonymous]</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">keypad</span></span></span><a class="headerlink" href="#_CPPv4N16_lv_indev_proc_t6keypadE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N16_lv_indev_proc_t5typesE">
<span id="_CPPv3N16_lv_indev_proc_t5typesE"></span><span id="_CPPv2N16_lv_indev_proc_t5typesE"></span><span class="target" id="struct__lv__indev__proc__t_1a472036d2fd55bfd8c0c9f1f2dde36d25"></span><span class="k"><span class="pre">union</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv416_lv_indev_proc_t" title="_lv_indev_proc_t"><span class="n"><span class="pre">_lv_indev_proc_t</span></span></a><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">[anonymous]</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">types</span></span></span><a class="headerlink" href="#_CPPv4N16_lv_indev_proc_t5typesE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N16_lv_indev_proc_t12pr_timestampE">
<span id="_CPPv3N16_lv_indev_proc_t12pr_timestampE"></span><span id="_CPPv2N16_lv_indev_proc_t12pr_timestampE"></span><span id="_lv_indev_proc_t::pr_timestamp__uint32_t"></span><span class="target" id="struct__lv__indev__proc__t_1a610fbc71cd450b55c0ad5fdf38dfaf5a"></span><span class="n"><span class="pre">uint32_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">pr_timestamp</span></span></span><a class="headerlink" href="#_CPPv4N16_lv_indev_proc_t12pr_timestampE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Pressed time stamp </p>
</dd></dl>

<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N16_lv_indev_proc_t20longpr_rep_timestampE">
<span id="_CPPv3N16_lv_indev_proc_t20longpr_rep_timestampE"></span><span id="_CPPv2N16_lv_indev_proc_t20longpr_rep_timestampE"></span><span id="_lv_indev_proc_t::longpr_rep_timestamp__uint32_t"></span><span class="target" id="struct__lv__indev__proc__t_1a943cbd9cf549902dc4cfae4fbcea181f"></span><span class="n"><span class="pre">uint32_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">longpr_rep_timestamp</span></span></span><a class="headerlink" href="#_CPPv4N16_lv_indev_proc_t20longpr_rep_timestampE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Long press repeat time stamp </p>
</dd></dl>

</div>
</dd></dl>

<dl class="cpp struct">
<dt class="sig sig-object cpp" id="_CPPv411_lv_indev_t">
<span id="_CPPv311_lv_indev_t"></span><span id="_CPPv211_lv_indev_t"></span><span id="_lv_indev_t"></span><span class="target" id="struct__lv__indev__t"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">_lv_indev_t</span></span></span><a class="headerlink" href="#_CPPv411_lv_indev_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;lv_hal_indev.h&gt;</em><p>The main input device descriptor with driver, runtime data ('proc') and some additional information </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-members">Public Members</p>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N11_lv_indev_t6driverE">
<span id="_CPPv3N11_lv_indev_t6driverE"></span><span id="_CPPv2N11_lv_indev_t6driverE"></span><span id="_lv_indev_t::driver___lv_indev_drv_tP"></span><span class="target" id="struct__lv__indev__t_1a5aed39e0d1027712f3894e1ba5e89d7a"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv415_lv_indev_drv_t" title="_lv_indev_drv_t"><span class="n"><span class="pre">_lv_indev_drv_t</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">driver</span></span></span><a class="headerlink" href="#_CPPv4N11_lv_indev_t6driverE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N11_lv_indev_t4procE">
<span id="_CPPv3N11_lv_indev_t4procE"></span><span id="_CPPv2N11_lv_indev_t4procE"></span><span id="_lv_indev_t::proc___lv_indev_proc_t"></span><span class="target" id="struct__lv__indev__t_1a532e74e74e6a183ee3e0fde02c9b2beb"></span><a class="reference internal" href="#_CPPv416_lv_indev_proc_t" title="_lv_indev_proc_t"><span class="n"><span class="pre">_lv_indev_proc_t</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">proc</span></span></span><a class="headerlink" href="#_CPPv4N11_lv_indev_t4procE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N11_lv_indev_t6cursorE">
<span id="_CPPv3N11_lv_indev_t6cursorE"></span><span id="_CPPv2N11_lv_indev_t6cursorE"></span><span id="_lv_indev_t::cursor___lv_obj_tP"></span><span class="target" id="struct__lv__indev__t_1afca94f9275c3ca669979477d56fd884d"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><a class="reference internal" href="../widgets/obj.html#_CPPv49_lv_obj_t" title="_lv_obj_t"><span class="n"><span class="pre">_lv_obj_t</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">cursor</span></span></span><a class="headerlink" href="#_CPPv4N11_lv_indev_t6cursorE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Cursor for LV_INPUT_TYPE_POINTER </p>
</dd></dl>

<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N11_lv_indev_t5groupE">
<span id="_CPPv3N11_lv_indev_t5groupE"></span><span id="_CPPv2N11_lv_indev_t5groupE"></span><span id="_lv_indev_t::group___lv_group_tP"></span><span class="target" id="struct__lv__indev__t_1abe81eefe10ba7f66ff9ffe3a48db3a31"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><a class="reference internal" href="../overview/indev.html#_CPPv411_lv_group_t" title="_lv_group_t"><span class="n"><span class="pre">_lv_group_t</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">group</span></span></span><a class="headerlink" href="#_CPPv4N11_lv_indev_t5groupE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Keypad destination group </p>
</dd></dl>

<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N11_lv_indev_t10btn_pointsE">
<span id="_CPPv3N11_lv_indev_t10btn_pointsE"></span><span id="_CPPv2N11_lv_indev_t10btn_pointsE"></span><span id="_lv_indev_t::btn_points__lv_point_tCP"></span><span class="target" id="struct__lv__indev__t_1aa7c40dc6d671c802427db39a7181237b"></span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">lv_point_t</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">btn_points</span></span></span><a class="headerlink" href="#_CPPv4N11_lv_indev_t10btn_pointsE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Array points assigned to the button ()screen will be pressed here by the buttons </p>
</dd></dl>

</div>
</dd></dl>

</div>
</div>


           </div>
           
          </div>
          <footer>
    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
        <a href="tick.html" class="btn btn-neutral float-right" title="Tick interface" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
        <a href="display.html" class="btn btn-neutral float-left" title="Display interface" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
    </div>

  <hr/>

  <div role="contentinfo">
    <p>
        &#169; Copyright 2020, LVGL LLC.
      <span class="lastupdated">
        Last updated on Jan 10, 2022.
      </span>

    </p>
  </div>
    
    
    
    Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
    
    <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
    
    provided by <a href="https://readthedocs.org">Read the Docs</a>. 

</footer>
        </div>
      </div>

    </section>

  </div>
  

  <script type="text/javascript">
      jQuery(function () {
          SphinxRtdTheme.Navigation.enable(true);
      });
  </script>

  
  
    
  

<style>
  .wy-side-nav-search > div[role="search"] {
    color: black;
  }
</style>
 <script type="text/javascript">
    $(document).ready(function() {
        $(".toggle > *").hide();
        $(".toggle .header").show();
        $(".toggle .header").click(function() {
            $(this).parent().children().not(".header").toggle(400);
            $(this).parent().children(".header").toggleClass("open");
        })
    });
</script>

<script type="text/javascript">
function add_version_selector()
{
    return fetch("https://raw.githubusercontent.com/lvgl/docs_compiled/gh-pages/versionlist.txt")
        .then(res => res.text())
        .then(text => {
            const versions = text.split("\n").filter(version => version.trim().length > 0);
            let p = document.getElementById("rtd-search-form").parentElement;
            p.innerHTML = `
            <select name="versions" id="versions" onchange="ver_sel()" style="border-radius:5px; margin-bottom:15px">
            ${versions.map(version => {
                const versionName = "v" + ((version.indexOf(".") != -1) ? version : (version + " (latest minor)"));
                return `<option value="${version}">${versionName}</option>`;
            })}
            </select>` + p.innerHTML;
        });
}

function ver_sel()
{
  var x = document.getElementById("versions").value;
  window.location.href = window.location.protocol + "//" + window.location.host + "/" + x + "/";
}

document.addEventListener('DOMContentLoaded', (event) => {
    add_version_selector().then(() => {
        var value = window.location.pathname.split('/')[1];
        document.getElementById("versions").value = value;
    });
    
})
</script>


</body>
</html>